ACPI, PCI, irq: Do not share PCI IRQ with ISA IRQ
authorJiang Liu <jiang.liu@linux.intel.com>
Thu, 17 Sep 2015 06:02:45 +0000 (14:02 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 25 Sep 2015 23:53:07 +0000 (01:53 +0200)
commit5ebc76035303016ec41bb752bec156ea9fde7c34
tree50b32017fe7f9771a1fa2a97cba4ec64b34b046c
parent1f93e4a96c9109378204c147b3eec0d0e8100fde
ACPI, PCI, irq: Do not share PCI IRQ with ISA IRQ

Avoid IRQs occupied by ISA IRQs when allocating IRQs for PCI link devices,
otherwise it may cause interrupt storm due to incompatible pin attributes.

This issue was triggered on a KVM virtual machine, which
 1) uses IRQ9 for SCI in high level mode.
 2) defines an PCI interrupt link device (LNKS) with IRQ9 as the only
    possible irq.
 3) has an PCI device referring to link device LNKS.
So it causes interrupt storm when enabling the PCI device because PCI IRQ
works in low level mode.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/pci_irq.c
drivers/acpi/pci_link.c
include/linux/acpi.h