[PATCH] arch:x86:pci:irq.c: Improve log message when IRQ cannot be identified

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux