xhci: dbc: Flush queued requests before stopping dbc
Flush dbc requests when dbc is stopped and transfer rings are freed.
Failure to flush them lead to leaking memory and dbc completing odd
requests after resuming from suspend, leading to error messages such as:
[ 95.344392] xhci_hcd 0000:00:0d.0: no matched request
Cc: stable <stable@kernel.org>
Fixes: dfba2174dc ("usb: xhci: Add DbC support in xHCI driver")
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20250627144127.3889714-5-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2b857d69a5
commit
efe3e3ae5a
@@ -652,6 +652,10 @@ static void xhci_dbc_stop(struct xhci_dbc *dbc)
|
||||
case DS_DISABLED:
|
||||
return;
|
||||
case DS_CONFIGURED:
|
||||
spin_lock(&dbc->lock);
|
||||
xhci_dbc_flush_requests(dbc);
|
||||
spin_unlock(&dbc->lock);
|
||||
|
||||
if (dbc->driver->disconnect)
|
||||
dbc->driver->disconnect(dbc);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user