https://bugzilla.kernel.org/show_bug.cgi?id=214021 --- Comment #11 from Mathias Nyman (mathias.nyman@xxxxxxxxxxxxxxx) --- (In reply to Alan Stern from comment #10) > > Would something like the attached patch fix the problem? It delays > registration of the secondary root hub until after the primary hcd is > started, just before the primary root hub is registered. If I understood the problem correctly we would need to delay the registration of the primary roothub until secondary hcd usb_hcd_add() reaches hcd->driver->start() xhci pci driver will first create and add primary hcd, then create and add secondary hcd. xhci_pci_probe() /* create AND add primary hcd in one go */ usb_hcd_pci_probe(dev, id, &hc_driver) primary_hcd = dev_get_drvdata(&dev->dev) /* create secondary hcd */ secondary_hcd = usb_create_shared_hcd(...,primary_hcd) /* add secondary hcd */ usb_add_hcd(secondary_hcd) If we force xhci driver to always first create both hcds, and then add them, we could maybe do somethinh like this: usb_hcd_add() ... if ((is_primary_hcd(hcd) && !hcd->shared_hcd) || !is_primary_hcd) register_roothub(primary_hcd); if(!is_primary_hcd(hcd)) register_roothub(hcd); If this makes any sense I'll turn this into real code. -- You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug.