]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU
authorSeth Forshee <seth.forshee@canonical.com>
Wed, 8 Aug 2012 13:27:03 +0000 (08:27 -0500)
committerJoerg Roedel <joerg.roedel@amd.com>
Fri, 10 Aug 2012 09:28:16 +0000 (11:28 +0200)
commit32ab31e01e2def6f48294d872d9bb42573aae00f
tree0d3554836eb1edbaf4c650e4b92d7cdf949cfadd
parent31fe943599b7e5870edb9decb7fbb9538b218f26
irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU

The ACPI tables in the Macbook Air 5,1 define a single IOAPIC with id 2,
but the only remapping unit described in the DMAR table matches id 0.
Interrupt remapping fails as a result, and the kernel panics with the
message "timer doesn't work through Interrupt-remapped IO-APIC."

To fix this, check each IOAPIC for a corresponding IOMMU. If an IOMMU is
not found, do not allow IRQ remapping to be enabled.

v2: Move check to parse_ioapics_under_ir(), raise log level to KERN_ERR,
    and add FW_BUG to the log message
v3: Skip check if IOMMU doesn't support interrupt remapping and remove
    existing check that the IOMMU count equals the IOAPIC count

Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Acked-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
drivers/iommu/intel_irq_remapping.c