-
由 Kishon Vijay Abraham I 提交于
stable inclusion from stable-v5.10.121 commit ce4627f09e666f1c8de880c19786a449725862ef category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I5L6CQ Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ce4627f09e666f1c8de880c19786a449725862ef -------------------------------- commit a44623d9 upstream. It has been observed with certain PCIe USB cards (like Inateck connected to AM64 EVM or J7200 EVM) that as soon as the primary roothub is registered, port status change is handled even before xHC is running leading to cold plug USB devices not detected. For such cases, registering both the root hubs along with the second HCD is required. Add support for deferring roothub registration in usb_add_hcd(), so that both primary and secondary roothubs are registered along with the second HCD. This patch has been added and reverted earier as it triggered a race in usb device enumeration. That race is now fixed in 5.16-rc3, and in stable back to 5.4 commit 6cca13de ("usb: hub: Fix locking issues with address0_mutex") commit 6ae6dc22 ("usb: hub: Fix usb enumeration issue due to address0 race") CC: stable@vger.kernel.org # 5.4+ Suggested-by: NMathias Nyman <mathias.nyman@linux.intel.com> Tested-by: NChris Chiu <chris.chiu@canonical.com> Acked-by: NAlan Stern <stern@rowland.harvard.edu> Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com> Link: https://lore.kernel.org/r/20220510091630.16564-2-kishon@ti.comSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com> Acked-by: NXie XiuQi <xiexiuqi@huawei.com>
5ac74601