linux/drivers/iommu
Seth Forshee 32ab31e01e 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>
2012-08-10 11:28:16 +02:00
..
amd_iommu_init.c iommu/amd: Fix pci_request_acs() call-place 2012-08-06 18:07:43 +02:00
amd_iommu_proto.h iommu/amd: Add function to get IOMMUv2 domain for pdev 2011-12-12 15:19:05 +01:00
amd_iommu_types.h iommu/amd: Split out PCI related parts of IOMMU initialization 2012-07-17 12:14:57 +02:00
amd_iommu_v2.c IOMMU Updates for Linux v3.6-rc1 2012-07-24 16:24:11 -07:00
amd_iommu.c iommu/amd: Fix ACS path checking 2012-08-06 18:10:04 +02:00
dmar.c iommu/dmar: Use pr_format() instead of PREFIX to tidy up pr_*() calls 2012-06-11 10:27:44 +02:00
exynos-iommu.c iommu/exynos: Fix build error 2012-08-03 16:04:45 +02:00
intel_irq_remapping.c irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU 2012-08-10 11:28:16 +02:00
intel-iommu.c iommu/intel: Fix ACS path checking 2012-08-06 18:09:51 +02:00
iommu.c Merge branches 'iommu/fixes', 'x86/amd', 'groups', 'arm/tegra' and 'api/domain-attr' into next 2012-07-23 12:17:00 +02:00
iova.c iommu: Fix typo in iommu 2012-07-24 12:58:49 +02:00
irq_remapping.c IOMMU Updates for Linux v3.6-rc1 2012-07-24 16:24:11 -07:00
irq_remapping.h irq/apic: Use config_enabled(CONFIG_SMP) checks to clean up irq_set_affinity() for UP 2012-06-15 14:17:29 +02:00
Kconfig iommu/tegra: smmu: Add device tree support for SMMU 2012-06-25 13:50:43 +02:00
Makefile iommu: Add DMA window parser, of_get_dma_window() 2012-06-25 13:50:28 +02:00
msm_iommu_dev.c
msm_iommu.c iommu/msm: Implement DOMAIN_ATTR_GEOMETRY attribute 2012-07-11 12:20:05 +02:00
of_iommu.c iommu: Add DMA window parser, of_get_dma_window() 2012-06-25 13:50:28 +02:00
omap-iommu-debug.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
omap-iommu.c iommu/omap: Implement DOMAIN_ATTR_GEOMETRY attribute 2012-07-11 12:15:45 +02:00
omap-iovmm.c Merge branches 'iommu/fixes', 'arm/omap' and 'x86/amd' into next 2012-01-09 13:04:05 +01:00
tegra-gart.c iommu/tegra: Implement DOMAIN_ATTR_GEOMETRY attribute 2012-07-11 12:25:57 +02:00
tegra-smmu.c iommu/tegra: smmu: Fix error initial value at domain_init 2012-08-03 16:04:44 +02:00