[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230327095019.1017159-1-mathias.nyman@linux.intel.com>
Date: Mon, 27 Mar 2023 12:50:19 +0300
From: Mathias Nyman <mathias.nyman@...ux.intel.com>
To: mirsad.todorovac@....unizg.hr, linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: gregkh@...uxfoundation.org, ubuntu-devel-discuss@...ts.ubuntu.com,
stern@...land.harvard.edu, arnd@...db.de,
Mathias Nyman <mathias.nyman@...ux.intel.com>,
Stable@...r.kernel.org
Subject: [PATCH] xhci: Free the command allocated for setting LPM if we return early
The command allocated to set exit latency LPM values need to be freed in
case the command is never queued. This would be the case if there is no
change in exit latency values, or device is missing.
Fixes: 5c2a380a5aa8 ("xhci: Allocate separate command structures for each LPM command")
Cc: <Stable@...r.kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman@...ux.intel.com>
---
drivers/usb/host/xhci.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index bdb6dd819a3b..6307bae9cddf 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -4442,6 +4442,7 @@ static int __maybe_unused xhci_change_max_exit_latency(struct xhci_hcd *xhci,
if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_free_command(xhci, command);
return 0;
}
--
2.25.1
Powered by blists - more mailing lists