If there is no ACPI entry for the irq, returning error from acpi_pci_enable_irq() if the irq is 0. Prarit Bhargava reported an issue where he noticed that his Dell PowerEdge 840 has buggy BIOS that does not supply ACPI entries for irq with some devices. That lead into kernel generating a warning "genirq: Flags mismatch irq 0...". This will fix that issue. Signed-off-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> Tested-by: Prarit Bhargava <prarit@xxxxxxxxxx> --- drivers/acpi/pci_irq.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c index 41c5e1b..902ed1c 100644 --- a/drivers/acpi/pci_irq.c +++ b/drivers/acpi/pci_irq.c @@ -419,8 +419,16 @@ int acpi_pci_irq_enable(struct pci_dev *dev) */ if (gsi < 0) { u32 dev_gsi; + + /* Not accepting 0 as valid PCI IRQ. */ + if (!dev->irq) { + dev_err(&dev->dev, "PCI INT %c: no IRQ\n", + pin_name(pin)); + return -ENOENT; + } + /* Interrupt Line values above 0xF are forbidden */ - if (dev->irq > 0 && (dev->irq <= 0xF) && + if ((dev->irq <= 0xF) && (acpi_isa_irq_to_gsi(dev->irq, &dev_gsi) == 0)) { dev_warn(&dev->dev, "PCI INT %c: no GSI - using ISA IRQ %d\n", pin_name(pin), dev->irq); -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html