alistair23-linux/drivers/iommu
Jiang Liu 360eb3c568 iommu/vt-d: use dedicated bitmap to track remapping entry allocation status
Currently Intel interrupt remapping drivers uses the "present" flag bit
in remapping entry to track whether an entry is allocated or not.
It works as follow:
1) allocate a remapping entry and set its "present" flag bit to 1
2) compose other fields for the entry
3) update the remapping entry with the composed value

The remapping hardware may access the entry between step 1 and step 3,
which then observers an entry with the "present" flag set but random
values in all other fields.

This patch introduces a dedicated bitmap to track remapping entry
allocation status instead of sharing the "present" flag with hardware,
thus eliminate the race window. It also simplifies the implementation.

Tested-and-reviewed-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
2014-01-07 17:16:19 +01:00
..
amd_iommu.c iommu/amd: Fix resource leak in iommu_init_device() 2013-08-14 22:15:46 +02:00
amd_iommu_init.c iommu/amd: Clean up unnecessary MSI/MSI-X capability find 2013-08-14 12:18:52 +02:00
amd_iommu_proto.h
amd_iommu_types.h
amd_iommu_v2.c
arm-smmu.c iommu/arm-smmu: fix error return code in arm_smmu_device_dt_probe() 2013-12-06 16:44:25 +00:00
dmar.c iommu/vt-d: Mark functions as static in dmar.c 2013-12-30 15:36:30 +01:00
exynos-iommu.c
fsl_pamu.c iommu/fsl: Remove unnecessary 'fsl-pamu' prefixes 2013-08-14 11:44:30 +02:00
fsl_pamu.h
fsl_pamu_domain.c iommu/fsl: Fix whitespace problems noticed by git-am 2013-08-14 11:42:29 +02:00
fsl_pamu_domain.h
intel-iommu.c iommu/vt-d: Use dev_is_pci() to check whether it is pci device 2014-01-07 15:21:45 +01:00
intel_irq_remapping.c iommu/vt-d: use dedicated bitmap to track remapping entry allocation status 2014-01-07 17:16:19 +01:00
iommu-traces.c iommu: Add iommu_error class event to iommu trace 2013-09-25 11:07:04 +02:00
iommu.c Merge branches 'iommu/fixes', 'tracing', 'core', 'arm/tegra', 'x86/vt-d', 'arm/smmu' and 'arm/shmobile' into next 2013-11-01 14:44:25 +01:00
iova.c
irq_remapping.c iommu/vt-d: Mark function eoi_ioapic_pin_remapped() as static in irq_remapping.c 2013-12-30 15:37:23 +01:00
irq_remapping.h
Kconfig Don't try to compile shmobile-iommu outside of ARM 2013-11-15 18:57:42 -08:00
Makefile iommu: Add event tracing feature to iommu 2013-09-24 12:35:24 +02:00
msm_iommu.c
msm_iommu.h
msm_iommu_dev.c drivers/iommu: remove unnecessary platform_set_drvdata() 2013-09-11 15:56:24 -07:00
msm_iommu_hw-8xxx.h
of_iommu.c
omap-iommu-debug.c
omap-iommu.c drivers/iommu: remove unnecessary platform_set_drvdata() 2013-09-11 15:56:24 -07:00
omap-iommu.h
omap-iommu2.c
omap-iopgtable.h drivers/iommu/omap-iopgtable.h: remove unneeded cast of void* 2013-11-13 12:09:00 +09:00
omap-iovmm.c
pci.h
shmobile-iommu.c
shmobile-ipmmu.c
shmobile-ipmmu.h
tegra-gart.c iommu/tegra-gart: Staticize tegra_gart_pm_ops 2013-11-01 14:23:20 +01:00
tegra-smmu.c iommu/tegra-smmu: Staticize tegra_smmu_pm_ops 2013-11-01 14:23:33 +01:00