linux-stable/drivers/iommu
Eric Auger adfd373820 iommu: Introduce IOMMU_RESV_DIRECT_RELAXABLE reserved memory regions
Introduce a new type for reserved region. This corresponds
to directly mapped regions which are known to be relaxable
in some specific conditions, such as device assignment use
case. Well known examples are those used by USB controllers
providing PS/2 keyboard emulation for pre-boot BIOS and
early BOOT or RMRRs associated to IGD working in legacy mode.

Since commit c875d2c1b8 ("iommu/vt-d: Exclude devices using RMRRs
from IOMMU API domains") and commit 18436afdc1 ("iommu/vt-d: Allow
RMRR on graphics devices too"), those regions are currently
considered "safe" with respect to device assignment use case
which requires a non direct mapping at IOMMU physical level
(RAM GPA -> HPA mapping).

Those RMRRs currently exist and sometimes the device is
attempting to access it but this has not been considered
an issue until now.

However at the moment, iommu_get_group_resv_regions() is
not able to make any difference between directly mapped
regions: those which must be absolutely enforced and those
like above ones which are known as relaxable.

This is a blocker for reporting severe conflicts between
non relaxable RMRRs (like MSI doorbells) and guest GPA space.

With this new reserved region type we will be able to use
iommu_get_group_resv_regions() to enumerate the IOVA space
that is usable through the IOMMU API without introducing
regressions with respect to existing device assignment
use cases (USB and IGD).

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2019-06-12 10:32:59 +02:00
..
amd_iommu.c pci-v5.2-changes 2019-05-14 10:30:10 -07:00
amd_iommu_debugfs.c iommu/amd: Add basic debugfs infrastructure for AMD IOMMU 2018-07-06 14:06:30 +02:00
amd_iommu_init.c Merge branches 'arm/tegra', 'arm/mediatek', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next 2019-05-07 09:40:12 +02:00
amd_iommu_proto.h iommu/amd: Add basic debugfs infrastructure for AMD IOMMU 2018-07-06 14:06:30 +02:00
amd_iommu_types.h iommu/amd: Remove amd_iommu_pd_list 2019-04-26 15:17:20 +02:00
amd_iommu_v2.c iommu/amd: Remove clear_flush_young notifier 2019-01-30 17:30:46 +01:00
arm-smmu-regs.h iommu/arm-smmu: Log CBFRSYNRA register on context fault 2019-04-23 12:23:16 +01:00
arm-smmu-v3.c iommu/arm-smmu-v3: Don't disable SMMU in kdump kernel 2019-04-23 12:23:15 +01:00
arm-smmu.c iommu/arm-smmu: Log CBFRSYNRA register on context fault 2019-04-23 12:23:16 +01:00
dma-iommu.c Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:58:45 -07:00
dmar.c iommu/vt-d: Use struct_size() helper 2019-04-26 16:43:21 +02:00
exynos-iommu.c IOMMU: Make dwo drivers use stateless device links 2019-02-01 10:04:08 +01:00
fsl_pamu.c iommu: fsl_pamu: use for_each_of_cpu_node iterator 2018-09-28 14:25:58 -05:00
fsl_pamu.h
fsl_pamu_domain.c Merge branches 'arm/renesas', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd' and 'core' into next 2018-10-10 18:09:37 +02:00
fsl_pamu_domain.h
hyperv-iommu.c iommu/hyper-v: Add Hyper-V stub IOMMU driver 2019-02-28 11:12:16 +01:00
intel-iommu-debugfs.c iommu/vt-d: Add debugfs support to show scalable mode DMAR table internals 2019-05-27 16:16:10 +02:00
intel-iommu.c iommu/vt-d: Handle PCI bridge RMRR device scopes in intel_iommu_get_resv_regions 2019-06-12 10:32:59 +02:00
intel-pasid.c iommu/vt-d: Introduce macros useful for dumping DMAR table 2019-05-27 16:16:09 +02:00
intel-pasid.h iommu/vt-d: Introduce macros useful for dumping DMAR table 2019-05-27 16:16:09 +02:00
intel-svm.c iommu/vt-d: Fix bind svm with multiple devices 2019-05-27 11:54:56 +02:00
intel_irq_remapping.c pci-v5.2-changes 2019-05-14 10:30:10 -07:00
io-pgtable-arm-v7s.c iommu/io-pgtable-arm-v7s: request DMA32 memory, and improve debugging 2019-03-29 10:01:37 -07:00
io-pgtable-arm.c iommu: io-pgtable: Add ARM Mali midgard MMU page table format 2019-04-12 12:52:38 -05:00
io-pgtable.c iommu: io-pgtable: Add ARM Mali midgard MMU page table format 2019-04-12 12:52:38 -05:00
iommu-debugfs.c iommu: Fix IOMMU debugfs fallout 2019-02-26 11:15:58 +01:00
iommu-sysfs.c iommu/sysfs: Rename iommu_release_device() 2018-12-17 12:47:49 +01:00
iommu-traces.c
iommu.c iommu: Introduce IOMMU_RESV_DIRECT_RELAXABLE reserved memory regions 2019-06-12 10:32:59 +02:00
iova.c iommu/iova: Fix tracking of recently failed iova address 2019-03-22 12:01:58 +01:00
ipmmu-vmsa.c iommu: Allow io-pgtable to be used outside of drivers/iommu/ 2019-02-11 11:26:48 +01:00
irq_remapping.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
irq_remapping.h iommu/hyper-v: Add Hyper-V stub IOMMU driver 2019-02-28 11:12:16 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile iommu/hyper-v: Add Hyper-V stub IOMMU driver 2019-02-28 11:12:16 +01:00
msm_iommu.c treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h> 2019-05-14 19:52:52 -07:00
msm_iommu.h
msm_iommu_hw-8xxx.h
mtk_iommu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
mtk_iommu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
mtk_iommu_v1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
of_iommu.c iommu/of: Fix probe-deferral 2019-01-11 12:28:24 +01:00
omap-iommu-debug.c iommu/omap: Remove DEBUG_SEQ_FOPS_RO() 2018-11-22 17:10:43 +01:00
omap-iommu.c Merge branches 'arm/shmobile', 'arm/renesas', 'arm/msm', 'arm/smmu', 'arm/omap', 'x86/amd', 'x86/vt-d' and 'core' into next 2018-08-08 12:02:27 +02:00
omap-iommu.h
omap-iopgtable.h
qcom_iommu.c iommu: Allow io-pgtable to be used outside of drivers/iommu/ 2019-02-11 11:26:48 +01:00
rockchip-iommu.c IOMMU: Make dwo drivers use stateless device links 2019-02-01 10:04:08 +01:00
s390-iommu.c
tegra-gart.c iommu/tegra: gart: Perform code refactoring 2019-01-16 13:54:16 +01:00
tegra-smmu.c iommu/tegra-smmu: Respect IOMMU API read-write protections 2019-04-11 14:51:37 +02:00