On Tue, Nov 03 2020 at 09:54, Marc Zyngier wrote: > On 2020-11-02 22:18, Thomas Gleixner wrote: >> On Mon, Nov 02 2020 at 17:16, Thomas Gleixner wrote: >>> On Mon, Nov 02 2020 at 11:30, Marc Zyngier wrote: >>>> --- a/drivers/pci/probe.c >>>> +++ b/drivers/pci/probe.c >>>> @@ -871,6 +871,8 @@ static void pci_set_bus_msi_domain(struct pci_bus >>>> *bus) >>>> d = pci_host_bridge_msi_domain(b); >>>> >>>> dev_set_msi_domain(&bus->dev, d); >>>> + if (!d) >>>> + bus->bus_flags |= PCI_BUS_FLAGS_NO_MSI; >>> >>> Hrm, that might break legacy setups (no irqdomain support). I'd rather >>> prefer to explicitly tell the pci core at host registration time. >> >> s/might break/ breaks / Just validated :) > > For my own edification, can you point me to the failing case? Any architecture which selects PCI_MSI_ARCH_FALLBACKS and does not have irqdomain support runs into: if (!d) bus->bus_flags |= PCI_BUS_FLAGS_NO_MSI; which in turn makes pci_msi_supported() return 0 and consequently makes pci_enable_msi[x]() fail. Thanks, tglx