Comment 22 for bug 1313279

Revision history for this message
Carlo Wood (carlo-alinoe) wrote :

I bought a PCI Express card (PEXUSB3S44V from Startech, see https://www.startech.com/nl/en/Cards-Adapters/USB-3.0/Cards/PCI-Express-USB-3-Card-4-Dedicated-Channels-4-Port~PEXUSB3S44V) basically because it is the most expensive card you can get (I was hoping to rule out certain things with that).

As a result I no longer need to disable iommu in the BIOS or pass iommu=soft as kernel boot parameter.

However, I still get the following dmesg:

POWER DOWN CONNECTED DEVICE (Valve Index):

[77859.996165] retire_capture_urb: 99 callbacks suppressed
[77859.996475] usb 14-1.3: USB disconnect, device number 3
[77859.996479] usb 14-1.3.1: USB disconnect, device number 4
[77859.997165] usb 14-1.3.3: cannot submit urb (err = -19)
[77859.999429] usb 14-1: USB disconnect, device number 2
[77860.002716] usb 14-1.3.2: USB disconnect, device number 5
[77860.005249] usb 14-1.3.3: cannot submit urb 0, error -19: no device
[77860.009536] usb 14-1.3.3: USB disconnect, device number 6
[77860.013694] usb 14-1.3.5: USB disconnect, device number 7
[77860.737515] usb 15-1: USB disconnect, device number 2
[77860.737520] usb 15-1.1: USB disconnect, device number 3

POWER UP CONNECTED DEVICE

[77865.729313] xhci_hcd 0000:08:00.0: xHCI host not responding to stop endpoint command.
[77865.729989] xhci_hcd 0000:08:00.0: xHCI host controller not responding, assume dead
[77865.729995] xhci_hcd 0000:08:00.0: HC died; cleaning up

This reproduces 100% of the time.

Kernel: 5.6.0-rc7-lowlatlocxhci

This is 5.6.0-rc7 with a .config from a lowlatency kernel, ran through
make oldconfig; then localmodconfig to get rid of unused modules and
make menuconfig to turn xhci_hda and xhci_pci into kernel modules.
I can assure you however that this bug happens with any kernel and
any reasonable .config (I tried 4.15-general and several other kernels
and configs too).

Recovery is now possible with:

sudo rmmod xhci_pci
sudo modprobe xhci_pci

This allows me to recover without having to reboot, but also to
experiment with changes to the drivers.