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

From: Alan Stern
Date: Tue Apr 16 2019 - 11:00:43 EST


On Mon, 15 Apr 2019, Jesse Hathaway wrote:

> On Sat, Apr 6, 2019 at 10:32 AM Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> > Well, at least that's forward progress. I don't know what pstore is or
> > what connection it has to the USB subsystem. Does the machine hang
> > similarly if you boot without the Comtrol PCI card present?
>
> Yes the box boots fine when the Comtrol PCI card is *not* present.
>
> > For that matter, what happens if you remove EHCI from the kernel
> > configuration completely?
>
> If I remove USB support, the box still hangs after registering the pstore, but
> if I remove pstore support and APEI support from the kernel then the box boots
> without issue.
>
> > As for how the PCI card affects the USB handoff, it depends on how the
> > BIOS behaves. Normally the BIOS will take control of all the available
> > EHCI controllers during bootup (so that it can use them to communicate
> > with a USB keyboard or mouse), including controllers on add-on PCI
> > cards as well as those on the motherboard. When the kernel starts up,
> > it tries to take ownership of the controllers away from the BIOS
> > (that's the handoff) so that Linux can use them. However, if the BIOS
> > was never tested for handoff of USB controllers on add-on PCI cards, it
> > could easily have a bug that would crash the machine.
>
> The Comtrol card provides 32 serial ports, via a breakout box, but it has
> no USB functionality, which was why I was surprised that its presence
> somehow breaks the USB hand off.

Well, I am completely mystified. Nor do I understand how the commits
you identified could be related, although maybe the relationship is
very indirect.

Whatever the source of the problem, I don't think you're going to find
it by looking at the USB code. Perhaps the early initialization of the
functions that _are_ present on the Comtrol card somehow messes up
other parts of the system.

Alan Stern