linux_dsm_epyc7002/drivers/iommu
Lu Baolu a9bc9c9320 iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev()
commit 2d6ffc63f12417b979955a5b22ad9a76d2af5de9 upstream.

The VT-d hardware will ignore those Addr bits which have been masked by
the AM field in the PASID-based-IOTLB invalidation descriptor. As the
result, if the starting address in the descriptor is not aligned with
the address mask, some IOTLB caches might not invalidate. Hence people
will see below errors.

[ 1093.704661] dmar_fault: 29 callbacks suppressed
[ 1093.704664] DMAR: DRHD: handling fault status reg 3
[ 1093.712738] DMAR: [DMA Read] Request device [7a:02.0] PASID 2
               fault addr 7f81c968d000 [fault reason 113]
               SM: Present bit in first-level paging entry is clear

Fix this by using aligned address for PASID-based-IOTLB invalidation.

Fixes: 1c4f88b7f1 ("iommu/vt-d: Shared virtual address in scalable mode")
Reported-and-tested-by: Guo Kaijie <Kaijie.Guo@intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20201231005323.2178523-2-baolu.lu@linux.intel.com
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-19 18:27:33 +01:00
..
amd iommu/amd: Set DTE[IntTabLen] to represent 512 IRTEs 2020-12-07 11:00:24 +00:00
arm iommu/arm-smmu-qcom: Initialize SCTLR of the bypass context 2021-01-17 14:16:53 +01:00
intel iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev() 2021-01-19 18:27:33 +01:00
dma-iommu.c dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
exynos-iommu.c iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate() 2020-09-24 10:48:29 +02:00
fsl_pamu_domain.c iommu/pamu: Use dev_iommu_priv_get/set() 2020-06-30 11:59:48 +02:00
fsl_pamu_domain.h
fsl_pamu.c iommu/pamu: Replace use of kzfree with kfree_sensitive 2020-09-18 10:59:04 +02:00
fsl_pamu.h
hyperv-iommu.c x86_ioapic_Consolidate_IOAPIC_allocation 2020-09-16 16:52:32 +02:00
io-pgtable-arm-v7s.c iommu: Add gfp parameter to io_pgtable_ops->map() 2020-07-24 14:29:47 +02:00
io-pgtable-arm.c dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
io-pgtable-arm.h iommu/io-pgtable-arm: Move some definitions to a header 2020-09-28 23:48:06 +01:00
io-pgtable.c
ioasid.c
iommu-debugfs.c
iommu-sysfs.c
iommu-traces.c
iommu.c iommu: Check return of __iommu_attach_device() 2020-11-23 14:57:41 +00:00
iova.c iommu/iova: Replace cmpxchg with xchg in queue_iova 2020-09-04 12:11:06 +02:00
ipmmu-vmsa.c IOMMU Updates for Linux v5.9 2020-08-11 14:13:24 -07:00
irq_remapping.c iommu/irq_remapping: Consolidate irq domain lookup 2020-09-16 16:52:30 +02:00
irq_remapping.h iommu/irq_remapping: Consolidate irq domain lookup 2020-09-16 16:52:30 +02:00
Kconfig Merge branches 'arm/allwinner', 'arm/mediatek', 'arm/renesas', 'arm/tegra', 'arm/qcom', 'arm/smmu', 'ppc/pamu', 'x86/amd', 'x86/vt-d' and 'core' into next 2020-10-07 11:51:59 +02:00
Makefile More Arm SMMU updates for 5.9 2020-07-29 14:47:37 +02:00
msm_iommu_hw-8xxx.h
msm_iommu.c iommu: Add gfp parameter to io_pgtable_ops->map() 2020-07-24 14:29:47 +02:00
msm_iommu.h
mtk_iommu_v1.c iommu/mediatek: Do no use dev->archdata.iommu 2020-06-30 11:59:48 +02:00
mtk_iommu.c iommu/mediatek: Add support for MT8167 2020-09-18 10:29:12 +02:00
mtk_iommu.h iommu/mediatek: Add support for MT8167 2020-09-18 10:29:12 +02:00
of_iommu.c of/device: Add input id to of_dma_configure() 2020-07-28 15:51:32 +01:00
omap-iommu-debug.c iommu/omap: Check for failure of a call to omap_iommu_dump_ctx 2020-07-22 15:02:33 +02:00
omap-iommu.c Merge branches 'arm/renesas', 'arm/qcom', 'arm/mediatek', 'arm/omap', 'arm/exynos', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd' and 'core' into next 2020-07-29 14:42:00 +02:00
omap-iommu.h
omap-iopgtable.h
rockchip-iommu.c iommu/rockchip: Use dev_iommu_priv_get/set() 2020-06-30 11:59:48 +02:00
s390-iommu.c
sun50i-iommu.c iommu/sun50i: Fix set-but-not-used variable warning 2020-09-04 13:39:45 +02:00
tegra-gart.c iommu/tegra: Use dev_iommu_priv_get/set() 2020-06-30 11:59:48 +02:00
tegra-smmu.c iommu/tegra-smmu: Allow to group clients in same swgroup 2020-09-24 12:32:32 +02:00
virtio-iommu.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00