The existing code always suggests trying the pci=biosirq kernel parameter, but this option is only recognized when CONFIG_PCI_BIOS is set, which in turn depends on CONFIG_X86_32, so it is never appropriate on x86_64. The new version tries to form a more useful message when pci=biosirq is not available, including by suggesting different acpi= options if appropriate (probably the most common cause of failed IRQ discovery). See arch/x86/pci/common.c:535 for the interpretation of pci=biosirq, and arch/x86/Kconfig:2633 for the dependencies of CONFIG_PCI_BIOS. Signed-off-by: Brent Spillner <spillner@xxxxxxx> --- arch/x86/pci/irq.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c index 97b63e35e152..bc4aaaa74832 100644 --- a/arch/x86/pci/irq.c +++ b/arch/x86/pci/irq.c @@ -1522,7 +1522,21 @@ static int pirq_enable_irq(struct pci_dev *dev) } else if (pci_probe & PCI_BIOS_IRQ_SCAN) msg = ""; else +#ifdef CONFIG_PCI_BIOS msg = "; please try using pci=biosirq"; +#else + /* pci=biosirq is not a valid option */ +#ifdef CONFIG_ACPI + if (acpi_noirq) + msg = "; consider removing acpi=noirq"; + else +#endif + msg = "; recommend verifying UEFI/BIOS IRQ options" +#ifndef CONFIG_ACPI + " or enabling ACPI" +#endif + ; +#endif /* * With IDE legacy devices the IRQ lookup failure is not -- 2.34.1