diff options
author | Jiang Liu <jiang.liu@linux.intel.com> | 2015-09-17 14:02:45 +0800 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-09-26 01:53:07 +0200 |
commit | 5ebc76035303016ec41bb752bec156ea9fde7c34 (patch) | |
tree | 50b32017fe7f9771a1fa2a97cba4ec64b34b046c /include/linux | |
parent | 1f93e4a96c9109378204c147b3eec0d0e8100fde (diff) | |
download | op-kernel-dev-5ebc76035303016ec41bb752bec156ea9fde7c34.zip op-kernel-dev-5ebc76035303016ec41bb752bec156ea9fde7c34.tar.gz |
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>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/acpi.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 7235c48..43856d1 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -217,6 +217,7 @@ struct pci_dev; int acpi_pci_irq_enable (struct pci_dev *dev); void acpi_penalize_isa_irq(int irq, int active); +bool acpi_isa_irq_available(int irq); void acpi_penalize_sci_irq(int irq, int trigger, int polarity); void acpi_pci_irq_disable (struct pci_dev *dev); |