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

From: Alan Stern
Date: Sat Apr 06 2019 - 11:32:35 EST


On Fri, 5 Apr 2019, Jesse Hathaway wrote:

> On Thu, Apr 4, 2019 at 2:14 PM Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> > Okay. You could try skipping that pci_write_config_byte() call. The
> > following loop would probably time out, and you might find that the
> > code crashes later on.
> >
> > You could also try setting try_handoff to 0 near the start of the
> > routine. Your system plus the Comtrol PCI card could have the same
> > sort of bug as reported in Bugzilla #77021.
>
> I tried both of those options and the output was similar, here is the output
> with try_handoff set to 0. In both cases the box then hangs on initializing
> pstore.

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?

For that matter, what happens if you remove EHCI from the kernel
configuration completely?

> Excuse my ignorance on understanding how having the Comtrol
> card present would effect the USB handoff, but would there be any
> value in trying to boot this box via UEFI, rather than via the BIOS? Does
> UEFI handle the handoff differently?

The UEFI and the legacy BIOS are two separate pieces of code with no
particular connection to one another. It's a good bet that they do
pretty much everything differently.

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.

Alan Stern