From 1bd8bb7d2dfc44509acf729e636523c3c2b729df Mon Sep 17 00:00:00 2001 From: Mathias Nyman Date: Mon, 16 May 2022 12:48:50 +0300 Subject: [PATCH] xhci: Don't defer primary roothub registration if there is only one roothub The support for xHCI controllers with only one roothub, and the code to defer primary roothub registation until second roothub got merged to usb-next for 5.19 at the same time. commit 873f323618c2 ("xhci: prepare for operation w/o shared hcd") commit b7a4f9b5d0e4 ("xhci: Set HCD flag to defer primary roothub registration") These got merged in such a way that the flag to defer primary roothub registration is set even for xHC controllers with just one roothub. Fix this by setting the defer flag in a codepath taken only if we have two roothubs Fixes: 873f323618c2 ("xhci: prepare for operation w/o shared hcd") Signed-off-by: Mathias Nyman Link: https://lore.kernel.org/r/20220516094850.19788-2-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/host/xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index d957eac59ab3..f0ab63138016 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -696,8 +696,6 @@ int xhci_run(struct usb_hcd *hcd) xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished %s for main hcd", __func__); - set_bit(HCD_FLAG_DEFER_RH_REGISTER, &hcd->flags); - xhci_create_dbc_dev(xhci); xhci_debugfs_init(xhci); @@ -705,6 +703,8 @@ int xhci_run(struct usb_hcd *hcd) if (xhci_has_one_roothub(xhci)) return xhci_run_finished(xhci); + set_bit(HCD_FLAG_DEFER_RH_REGISTER, &hcd->flags); + return 0; } EXPORT_SYMBOL_GPL(xhci_run);