Re: Regression causes a hang on boot with a Comtrol PCI card

From: Alan Stern
Date: Tue Apr 02 2019 - 14:26:45 EST


On Tue, 2 Apr 2019, Mathias Nyman wrote:

> On 2.4.2019 17.29, Alan Stern wrote:
> > On Mon, 1 Apr 2019, Bjorn Helgaas wrote:
> >
> >> [+cc Mathias, Greg, Alan, linux-usb]
> >>
> >> Beginning of thread: https://lore.kernel.org/linux-pci/CANSNSoWiKd98Dt1N2sSjP9Af8zk1NPV-=3P4VLtFs_cSQG4RUg@xxxxxxxxxxxxxx
> >>
> >> Synopsis: v5.0 hangs at boot unless the following commits are reverted:
> >>
> >> 1302fcf0d03e ("PCI: Configure *all* devices, not just hot-added ones")
> >> 1c3c5eab1715 ("sched/core: Enable might_sleep() and smp_processor_id() checks early")
> >>
> >> The hang appears to be in quirk_usb_early_handoff(). With
> >> "initcall_debug", we see the call but not the completion:
> >>
> >> On Fri, Mar 22, 2019 at 03:02:11PM -0500, Jesse Hathaway wrote:
> >>>> So apparently the hang happens while we're running the "final" PCI
> >>>> fixups. This happens after all the rest of PCI is initialized.
> >>>>
> >>>> Can you boot v5.0 vanilla with "initcall_debug"? Maybe we can narrow
> >>>> it down to a specific quirk.
> >>>
> >>> yup, added the "initcall_debug" output to the ticket:
> >>> https://bugzilla.kernel.org/show_bug.cgi?id=202927, here is the tail end
> >>>
> >>> [ 14.896337] NET: Registered protocol family 1
> >>> [ 14.901314] initcall af_unix_init+0x0/0x4e returned 0 after 4866 usecs
> >>> [ 14.908694] calling ipv6_offload_init+0x0/0x7f @ 1
> >>> [ 14.914238] initcall ipv6_offload_init+0x0/0x7f returned 0 after 1 usecs
> >>> [ 14.921821] calling vlan_offload_init+0x0/0x20 @ 1
> >>> [ 14.927365] initcall vlan_offload_init+0x0/0x20 returned 0 after 0 usecs
> >>> [ 14.934948] calling pci_apply_final_quirks+0x0/0x126 @ 1
> >>> [ 14.941106] pci 0000:00:1a.0: calling quirk_usb_early_handoff+0x0/0x6a0 @ 1
> >>>
> >>> thanks, Jesse Hathaway
> >
> > Most likely the problem occurs somewhere inside
> > quirk_usb_handoff_xhci(). Can Jesse add debugging statements to that
> > routine in order to pin down exactly where the problem lies?
> >
> > Alan Stern
> >
>
> lspci log from bugzilla shows 0000:00:1a.0 is a EHCI device,
> so probably woth adding debugging to quirk_usb_disable_ehci() as well
>
> 00:1a.0 USB controller: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #2 (rev 05) (prog-if 20 [EHCI])

Oops! Quite right, my mistake. After all these years, I ought to
remember that Intel puts their motherboards' EHCI and UHCI controllers
at PCI addresses 00:1a and 00:1d.

Alan Stern