[SRU][F/I][PATCH 0/4] Fix USB devices not being detected at boot

Luke Nowakowski-Krijger luke.nowakowskikrijger at canonical.com
Thu Apr 7 20:00:50 UTC 2022


[SRU Justification]

[Impact]
There are users with certain intel xHCI controllers that are
experiencing problems with USB devices not being detected at boot.

This is because when the primary roothub is registered, device
enumeration happens before xHC is running and leads to devices not being
detected. This results in the error that looks something like 
'usb usb1-port3: couldn't allocate usb_device'.

[Fix]
Register both root hubs along with the secondary hcd for xhci.

This original fix was reverted upstream due to regressions that occured due to
racing that happened when both roothubs were registered simultaneously.
However with those fixes being addressed in commits
("usb: hub: Fix usb enumeration issue due to address0 race")
("usb: hub: Fix locking issues with address0_mutex")
the maintainers have stated that they will be reintroducing this commit.
So lets reintroduce it here to fix the issues that users are
experiencing.

[Test Case]
Confirmed by Chris Chiu that this issue exists on similiar hardware
reported by the users and that reverting these reverts fixes the issue
showing no signs of 'couldn't allocate usb_device' and with USB devices
available after boot.

[Regression Potential]
Should be low now that we carry the fixes that seemed to be caused by
this patch series.

Luke Nowakowski-Krijger (2):
  UBUNTU: SAUCE: Revert "Revert "xhci: Set HCD flag to defer primary
    roothub registration""
  UBUNTU: SAUCE: Revert "Revert "usb: core: hcd: Add support for
    deferring roothub registration""

 drivers/usb/core/hcd.c  | 29 +++++++++++++++++++++++------
 drivers/usb/host/xhci.c |  1 +
 include/linux/usb/hcd.h |  2 ++
 3 files changed, 26 insertions(+), 6 deletions(-)

-- 
2.32.0




More information about the kernel-team mailing list