Message ID | 20230116142216.1141605-3-mathias.nyman@linux.intel.com |
---|---|
State | New |
Headers | show |
Series | usb and xhci fixes for usb-linus | expand |
February 17, when i used linux 6.2-rc8, happen "Abort failed to stop command ring: -110", google search history February 17 search "Abort failed to stop command ring: -110" and "Usbreset No such device found". Date: Fri, 17 Feb 2023 23:59:29 +0800 Subject: [PATCH] Revert "usb: xhci: Check endpoint is valid before dereferencing it" This reverts commit e8fb5bc76eb86437ab87002d4a36d6da02165654. a week never see usb not work. may be revert it fix my problem. 2023-02-24 18:29 GMT+08:00, Mathias Nyman <mathias.nyman@linux.intel.com>: > On 23.2.2023 18.26, youling257 wrote: >> I used type-c 20Gbps USB3.2 GEN2x2 PCIe Expansion Card, may be this patch >> cause USB3.2 GEN2x2 PCIe Expansion Card not work. >> >> [ 0.285088] xhci_hcd 0000:09:00.0: hcc params 0x0200ef80 hci version >> 0x110 quirks 0x0000000000800010 >> [ 0.285334] usb usb7: We don't know the algorithms for LPM for this >> host, disabling LPM. >> [ 0.285347] xhci_hcd 0000:09:00.0: xHCI Host Controller >> [ 0.285407] hub 7-0:1.0: USB hub found >> [ 0.285415] hub 7-0:1.0: 4 ports detected >> [ 0.285783] xhci_hcd 0000:09:00.0: new USB bus registered, assigned bus >> number 8 >> [ 0.285787] xhci_hcd 0000:09:00.0: Host supports USB 3.2 Enhanced >> SuperSpeed >> [ 0.285889] hub 4-0:1.0: USB hub found >> [ 0.285901] hub 4-0:1.0: 1 port detected >> [ 0.285988] usb usb8: We don't know the algorithms for LPM for this >> host, disabling LPM. >> [ 3277.156054] xhci_hcd 0000:09:00.0: Abort failed to stop command ring: >> -110 >> [ 3277.156091] xhci_hcd 0000:09:00.0: xHCI host controller not responding, >> assume dead >> [ 3277.156103] xhci_hcd 0000:09:00.0: HC died; cleaning up >> >> may be this patch cause "xhci_hcd 0000:09:00.0: HC died; cleaning up" >> problem. > > Unlikely, this patch only touches code called after HC already died. > > Does reverting this patch fix the issue? > > Thanks > Mathias >
By the way, i used this patch on linux kernel has been a year, https://lore.kernel.org/all/6908aa69-469b-8f92-8e19-60685f524f9c@synopsys.com/ 2023-02-24 23:58 GMT+08:00, youling 257 <youling257@gmail.com>: > February 17, when i used linux 6.2-rc8, happen "Abort failed to stop > command ring: -110", google search history February 17 search "Abort > failed to stop command ring: -110" and "Usbreset No such device > found". > > Date: Fri, 17 Feb 2023 23:59:29 +0800 > Subject: [PATCH] Revert "usb: xhci: Check endpoint is valid before > dereferencing it" > This reverts commit e8fb5bc76eb86437ab87002d4a36d6da02165654. > > a week never see usb not work. > may be revert it fix my problem. > > 2023-02-24 18:29 GMT+08:00, Mathias Nyman <mathias.nyman@linux.intel.com>: >> On 23.2.2023 18.26, youling257 wrote: >>> I used type-c 20Gbps USB3.2 GEN2x2 PCIe Expansion Card, may be this >>> patch >>> cause USB3.2 GEN2x2 PCIe Expansion Card not work. >>> >>> [ 0.285088] xhci_hcd 0000:09:00.0: hcc params 0x0200ef80 hci version >>> 0x110 quirks 0x0000000000800010 >>> [ 0.285334] usb usb7: We don't know the algorithms for LPM for this >>> host, disabling LPM. >>> [ 0.285347] xhci_hcd 0000:09:00.0: xHCI Host Controller >>> [ 0.285407] hub 7-0:1.0: USB hub found >>> [ 0.285415] hub 7-0:1.0: 4 ports detected >>> [ 0.285783] xhci_hcd 0000:09:00.0: new USB bus registered, assigned >>> bus >>> number 8 >>> [ 0.285787] xhci_hcd 0000:09:00.0: Host supports USB 3.2 Enhanced >>> SuperSpeed >>> [ 0.285889] hub 4-0:1.0: USB hub found >>> [ 0.285901] hub 4-0:1.0: 1 port detected >>> [ 0.285988] usb usb8: We don't know the algorithms for LPM for this >>> host, disabling LPM. >>> [ 3277.156054] xhci_hcd 0000:09:00.0: Abort failed to stop command ring: >>> -110 >>> [ 3277.156091] xhci_hcd 0000:09:00.0: xHCI host controller not >>> responding, >>> assume dead >>> [ 3277.156103] xhci_hcd 0000:09:00.0: HC died; cleaning up >>> >>> may be this patch cause "xhci_hcd 0000:09:00.0: HC died; cleaning up" >>> problem. >> >> Unlikely, this patch only touches code called after HC already died. >> >> Does reverting this patch fix the issue? >> >> Thanks >> Mathias >> >
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index ddc30037f9ce..f5b0e1ce22af 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -1169,7 +1169,10 @@ static void xhci_kill_endpoint_urbs(struct xhci_hcd *xhci, struct xhci_virt_ep *ep; struct xhci_ring *ring; - ep = &xhci->devs[slot_id]->eps[ep_index]; + ep = xhci_get_virt_ep(xhci, slot_id, ep_index); + if (!ep) + return; + if ((ep->ep_state & EP_HAS_STREAMS) || (ep->ep_state & EP_GETTING_NO_STREAMS)) { int stream_id;