android_kernel_google_msm/drivers/iommu
Seth Forshee 77d13a0883 irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU
commit 32ab31e01e upstream.

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>
Acked-by: Cho, Yu-Chen <acho@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-02 10:30:38 -07:00
..
amd_iommu.c iommu/amd: Fix hotplug with iommu=pt 2012-08-09 08:31:32 -07:00
amd_iommu_init.c iommu/amd: Fix missing iommu_shutdown initialization in passthrough mode 2012-07-16 09:03:51 -07: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: Cache pdev pointer to root-bridge 2012-06-10 00:36:18 +09:00
amd_iommu_v2.c iommu/amd: Add missing spin_lock initialization 2012-08-09 08:31:31 -07:00
dmar.c iommu: Fix off by one in dmar_get_fault_reason() 2012-06-01 15:18:27 +08:00
intel-iommu.c intel-iommu: Add device info into list before doing context mapping 2012-06-01 15:18:27 +08:00
intr_remapping.c irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU 2012-10-02 10:30:38 -07:00
intr_remapping.h
iommu.c Merge branches 'iommu/page-sizes' and 'iommu/group-id' into next 2012-01-09 13:06:28 +01:00
iova.c
Kconfig ARM: IOMMU: Tegra30: Add iommu_ops for SMMU driver 2012-01-26 13:59:02 +01:00
Makefile ARM: IOMMU: Tegra30: Add iommu_ops for SMMU driver 2012-01-26 13:59:02 +01:00
msm_iommu.c iommu/msm: Fix error handling in msm_iommu_unmap() 2012-01-30 12:53:14 +01:00
msm_iommu_dev.c
omap-iommu-debug.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
omap-iommu.c ARM: OMAP: make iommu subsys_initcall to fix builtin omap3isp 2012-02-27 14:18:42 +01: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-gart: fix spin_unlock in map failure path 2012-03-13 11:17:42 +01:00
tegra-smmu.c iommu/tegra: smmu: Fix unsleepable memory allocation 2012-07-16 09:03:52 -07:00