Re: [PATCH 1/3] x86/quirks: Scan all busses for early PCI quirks
From: Bjorn Helgaas
Date: Tue Oct 23 2018 - 13:03:48 EST
On Mon, Oct 22, 2018 at 05:35:06PM -0300, Guilherme G. Piccoli wrote:
> On 18/10/2018 19:15, Bjorn Helgaas wrote:
> > On Thu, Oct 18, 2018 at 03:37:19PM -0300, Guilherme G. Piccoli wrote:
> > [...]
> I understand your point, but I think this is inherently an architecture
> problem. No matter what solution we decide for, it'll need to be applied
> in early boot time, like before the PCI layer gets initialized.
This is the part I want to know more about. Apparently there's some
event X between early_quirks() and the PCI device enumeration, and we
must disable MSIs before X:
setup_arch()
early_quirks() # arch/x86/kernel/early-quirks.c
early_pci_clear_msi()
...
X
...
pci_scan_root_bus_bridge()
...
DECLARE_PCI_FIXUP_EARLY # drivers/pci/quirks.c
I want to know specifically what X is. If we don't know what X is and
all we know is "we have to disable MSIs earlier than PCI init", then
we're likely to break things again in the future by changing the order
of disabling MSIs and whatever X is.
Bjorn