linux/drivers/iommu
Jiang Liu 13d09b6603 iommu/vt-d: Allow IR works in XAPIC mode though CPU works in X2APIC mode
Currently if CPU supports X2APIC, IR hardware must work in X2APIC mode
or disabled. Change the code to support IR working in XAPIC mode when
CPU supports X2APIC. Then the CPU APIC driver will decide how to handle
such as configuration by:
1) Disabling X2APIC mode
2) Forcing X2APIC physical mode

This change also fixes a live locking when
1) BIOS enables CPU X2APIC
2) DMAR table disables X2APIC mode or IR hardware doesn't support X2APIC
with following messages:
[   37.863463] dmar: INTR-REMAP: Request device [[f0:1f.7] fault index 2
[   37.863463] INTR-REMAP:[fault reason 36] Detected reserved fields in the IRTE entry
[   37.879372] dmar: INTR-REMAP: Request device [[f0:1f.7] fault index 2
[   37.879372] INTR-REMAP:[fault reason 36] Detected reserved fields in the IRTE entry
[   37.895282] dmar: INTR-REMAP: Request device [[f0:1f.7] fault index 2
[   37.895282] INTR-REMAP:[fault reason 36] Detected reserved fields in the IRTE entry
[   37.911192] dmar: INTR-REMAP: Request device [[f0:1f.7] fault index 2

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Tested-by: Joerg Roedel <joro@8bytes.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: iommu@lists.linux-foundation.org
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Link: http://lkml.kernel.org/r/1420615903-28253-11-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-01-15 11:24:23 +01:00
..
amd_iommu_init.c
amd_iommu_proto.h
amd_iommu_types.h
amd_iommu_v2.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-12-15 15:52:01 -08:00
amd_iommu.c Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-12-19 14:02:02 -08:00
arm-smmu.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
dmar.c iommu/vt-d: Search for ACPI _DSM method for DMAR hotplug 2014-11-18 11:18:36 +01:00
exynos-iommu.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
fsl_pamu_domain.c
fsl_pamu_domain.h
fsl_pamu.c
fsl_pamu.h
intel_irq_remapping.c iommu/vt-d: Allow IR works in XAPIC mode though CPU works in X2APIC mode 2015-01-15 11:24:23 +01:00
intel-iommu.c iommu/vt-d: Remove dead code in device_notifier 2015-01-05 12:23:38 +01:00
iommu-sysfs.c
iommu-traces.c
iommu.c ARM: SoC/iommu configuration for 3.19 2014-12-16 14:53:01 -08:00
iova.c
ipmmu-vmsa.c iommu/ipmmu-vmsa: Change IOMMU_EXEC to IOMMU_NOEXEC 2015-01-05 12:23:37 +01:00
irq_remapping.c iommu, x86: Restructure setup of the irq remapping feature 2015-01-15 11:24:22 +01:00
irq_remapping.h
Kconfig ARM: SoC/iommu configuration for 3.19 2014-12-16 14:53:01 -08:00
Makefile Merge branches 'arm/omap', 'arm/msm', 'arm/rockchip', 'arm/renesas', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next 2014-12-02 13:07:13 +01:00
msm_iommu_dev.c iommu/msm: Use dev_get_platdata() 2014-11-04 15:03:39 +01:00
msm_iommu_hw-8xxx.h
msm_iommu.c Merge branches 'arm/omap', 'arm/msm', 'arm/rockchip', 'arm/renesas', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next 2014-12-02 13:07:13 +01:00
msm_iommu.h
of_iommu.c iommu: store DT-probed IOMMU data privately 2014-12-05 14:35:52 +00:00
omap-iommu-debug.c
omap-iommu.c Merge branches 'arm/omap', 'arm/msm', 'arm/rockchip', 'arm/renesas', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next 2014-12-02 13:07:13 +01:00
omap-iommu.h
omap-iopgtable.h
rockchip-iommu.c iommu/rockchip: Drop owner assignment from platform_drivers 2015-01-05 12:40:06 +01:00
shmobile-iommu.c
shmobile-ipmmu.c
shmobile-ipmmu.h
tegra-gart.c
tegra-smmu.c memory: Add NVIDIA Tegra memory controller support 2014-12-04 16:11:47 +01:00