8 #include <linux/device.h>
9 #include <linux/kernel.h>
10 #include <linux/export.h>
11 #include <linux/pci.h>
13 static void pci_note_irq_problem(
struct pci_dev *pdev,
const char *
reason)
18 "Potentially misrouted IRQ (Bridge %s %04x:%04x)\n",
40 enum pci_lost_interrupt_reason
ret;
43 pci_note_irq_problem(pdev,
"MSIX routing failure");
44 ret = PCI_LOST_IRQ_DISABLE_MSIX;
46 pci_note_irq_problem(pdev,
"MSI routing failure");
47 ret = PCI_LOST_IRQ_DISABLE_MSI;
53 pci_note_irq_problem(pdev,
"Potential ACPI misrouting please reboot with acpi=noirq");
55 return PCI_LOST_IRQ_DISABLE_ACPI;
58 pci_note_irq_problem(pdev,
"unknown cause (not MSI or ACPI)");
59 return PCI_LOST_IRQ_NO_INFORMATION;