linux/drivers/iommu
David Woodhouse 5cec753709 iommu/vt-d: Implement SVM_FLAG_SUPERVISOR_MODE for kernel access
This is only usable for the static 1:1 mapping of physical memory.

Any access to vmalloc or module regions will require some way of doing
an IOTLB flush. It's theoretically possible to hook into the
tlb_flush_kernel_range() function, but that seems like overkill — most
of the addresses accessed through a kernel PASID *will* be in the 1:1
mapping.

If we really need to allow access to more interesting kernel regions,
then the answer will probably be an explicit IOTLB flush call after use,
akin to the DMA API's unmap function.

In fact, it might be worth introducing that sooner rather than later, and
making it just BUG() if the address isn't in the static 1:1 mapping.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2015-10-15 15:52:21 +01:00
..
amd_iommu_init.c iommu/amd: Make a symbol static 2015-08-13 19:49:10 +02:00
amd_iommu_proto.h IOMMU Updates for Linux v4.2 2015-06-23 18:27:19 -07:00
amd_iommu_types.h IOMMU Updates for Linux v4.2 2015-06-23 18:27:19 -07:00
amd_iommu_v2.c iommu/amd: Use BUG_ON instead of if () BUG() 2015-08-13 19:49:14 +02:00
amd_iommu.c iommu/amd: Use BUG_ON instead of if () BUG() 2015-08-13 19:49:14 +02:00
arm-smmu-v3.c iommu/arm-smmu: Remove arm_smmu_flush_pgtable() 2015-08-06 14:35:40 +01:00
arm-smmu.c iommu/arm-smmu: Remove arm_smmu_flush_pgtable() 2015-08-06 14:35:40 +01:00
dmar.c iommu/vt-d: Generalise DMAR MSI setup to allow for page request events 2015-10-15 13:22:41 +01:00
exynos-iommu.c iommu/exynos: Add callback for initializing devices from device tree 2015-05-29 10:50:08 +02:00
fsl_pamu_domain.c iommu/fsl: Make use of domain_alloc and domain_free 2015-03-31 15:32:14 +02:00
fsl_pamu_domain.h iommu/fsl: Make use of domain_alloc and domain_free 2015-03-31 15:32:14 +02:00
fsl_pamu.c iommu/fsl: Really fix init section(s) content 2015-08-18 11:30:46 +02:00
fsl_pamu.h iommu/fsl: Various cleanups 2015-02-03 18:47:18 +01:00
intel_irq_remapping.c iommu/vt-d: Access iomem correctly 2015-08-13 19:49:56 +02:00
intel-iommu.c iommu/vt-d: Implement page request handling 2015-10-15 15:35:19 +01:00
intel-svm.c iommu/vt-d: Implement SVM_FLAG_SUPERVISOR_MODE for kernel access 2015-10-15 15:52:21 +01:00
io-pgtable-arm.c iommu/io-pgtable-arm: Unmap and free table when overwriting with block 2015-08-18 11:27:36 +02:00
io-pgtable.c iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h 2015-08-13 19:51:04 +02:00
io-pgtable.h iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h 2015-08-13 19:51:04 +02:00
iommu-sysfs.c iommu: Fix compile error in iommu-sysfs.c 2014-07-07 12:01:21 +02:00
iommu-traces.c iommu: Add iommu_error class event to iommu trace 2013-09-25 11:07:04 +02:00
iommu.c scatterlist: use sg_phys() 2015-08-17 08:13:26 -06:00
iova.c iommu: Make the iova library a module 2015-07-28 15:48:01 +01:00
ipmmu-vmsa.c iommu/ipmmu-vmsa: Clean up DMA API usage 2015-08-06 14:35:39 +01:00
irq_remapping.c iommu/vt-d: Return false instead of 0 in irq_remapping_cap() 2015-08-13 19:49:41 +02:00
irq_remapping.h iommu, x86: Setup Posted-Interrupts capability for Intel iommu 2015-06-12 11:33:52 +02:00
Kconfig iommu/vt-d: Add basic SVM PASID support 2015-10-15 12:55:45 +01:00
Makefile iommu/vt-d: Add initial support for PASID tables 2015-10-15 11:24:51 +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 iommu/msm: Move mach includes to iommu directory 2013-08-06 11:18:03 -07:00
msm_iommu.c iommu/msm: Use BUG_ON instead of if () BUG() 2015-08-13 19:50:51 +02:00
msm_iommu.h iommu/msm: Move mach includes to iommu directory 2013-08-06 11:18:03 -07:00
of_iommu.c of: iommu: Silence misleading warning 2015-08-03 16:07:49 +02:00
omap-iommu-debug.c fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void 2015-09-11 15:21:34 -07:00
omap-iommu.c iommu/omap: Align code with open parenthesis 2015-08-03 16:04:43 +02:00
omap-iommu.h iommu/omap: Use BIT(x) macros in omap-iommu.h 2015-08-03 16:04:42 +02:00
omap-iopgtable.h iommu/omap: Use BIT(x) macros in omap-iopgtable.h 2015-08-03 16:04:42 +02:00
rockchip-iommu.c Merge branches 'arm/rockchip', 'arm/exynos', 'arm/smmu', 'x86/vt-d', 'x86/amd', 'default-domains' and 'core' into next 2015-06-19 17:17:47 +02:00
shmobile-iommu.c iommu/shmobile: Make use of domain_alloc and domain_free 2015-03-31 15:32:13 +02:00
shmobile-ipmmu.c iommu: drop owner assignment from platform_drivers 2014-10-20 16:20:42 +02:00
shmobile-ipmmu.h iommu/shmobile: Turn the flush_lock mutex into a spinlock 2014-01-07 15:35:25 +01:00
tegra-gart.c Merge branches 'iommu/fixes', 'x86/vt-d', 'x86/amd', 'arm/smmu', 'arm/tegra' and 'core' into next 2015-04-02 13:33:19 +02:00
tegra-smmu.c iommu/tegra-smmu: Parameterize number of TLB lines 2015-08-13 17:05:28 +02:00