APPLIED: [SRU][N/Q/R][PATCH 0/1] USB camera lost after suspend due to xhci endpoint_reset failure

Mehmet Basaran mehmet.basaran at canonical.com
Fri Jun 19 13:50:39 UTC 2026


Applied to questing:linux master-next branch. For noble:linux and
resolute:linux, commit was already applied via upstream stable patch
sets to master-next branch.

Thanks.

-------------- next part --------------
Aaron Ma <aaron.ma at canonical.com> writes:

> BugLink: https://bugs.launchpad.net/bugs/2153966
>
> SRU Justification:
>
> [ Impact ]
> USB camera is lost after suspend. xhci_endpoint_disable() clears
> host_ep->hcpriv = NULL, which breaks xhci_endpoint_reset(). When uvcvideo
> calls usb_set_interface(), submits URBs that make host sequence state
> non-zero, then calls usb_clear_halt(), the device clears its sequence state
> but xhci_endpoint_reset() bails out because hcpriv is NULL. The next URB
> malfunctions: USB2 loses one packet, USB3 gets Transaction Error or may
> not complete at all on some host controllers from ASMedia and AMD.
>
> [ Fix ]
> Cherry-pick upstream mainline commit:
> - 25e531b422dc ("usb: xhci: Make usb_host_endpoint.hcpriv survive endpoint_disable()")
>
> Fixes: 18b74067ac78 ("xhci: Fix use-after-free regression in xhci clear hub TT implementation")
> Cc: stable at vger.kernel.org
>
> [ Test Plan ]
> 1. System with USB camera (uvcvideo bulk video device)
> 2. Suspend and resume the system
> 3. Verify camera is still available (/dev/video0 exists)
> 4. Verify no Transaction Errors in dmesg
> 5. Verify camera works in application (e.g. cheese, guvcview)
>
> [ Where problems could occur ]
> The fix removes one line (host_ep->hcpriv = NULL) from xhci_endpoint_disable().
> Risk is very low - the commit message explains hcpriv should only be NULL on
> emulated root hub endpoints, and core should not try to reset dropped endpoints.
>
>
> Michal Pecio (1):
>   usb: xhci: Make usb_host_endpoint.hcpriv survive endpoint_disable()
>
>  drivers/usb/host/xhci.c | 1 -
>  include/linux/usb.h     | 3 ++-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> --
> 2.43.0
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 873 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20260619/e78ace4c/attachment-0001.sig>


More information about the kernel-team mailing list