linux/drivers/iommu
Viktor Kleen 02f9d76a76 iommu/vt-d: Treat PAGE_SNOOP and PWSNP separately
The PASID_FLAG_PAGE_SNOOP and PASID_FLAG_PWSNP constants are identical.
This will cause the pasid code to always set both or neither of the
PGSNP and PWSNP bits in PASID table entries. However, PWSNP is a
reserved bit if SMPWC is not set in the IOMMU's extended capability
register, even if SC is supported.

This has resulted in DMAR errors when testing the iommufd code on an
Arrow Lake platform. With this patch, those errors disappear and the
PASID table entries look correct.

Fixes: 101a285411 ("iommu/vt-d: Follow PT_FEAT_DMA_INCOHERENT into the PASID entry")
Cc: stable@vger.kernel.org
Signed-off-by: Viktor Kleen <viktor@kleen.org>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20260202192109.1665799-1-viktor@kleen.org
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2026-02-06 11:01:00 +01:00
..
amd iommu/amd: Fix error path in amd_iommu_probe_device() 2026-01-18 11:03:12 +01:00
arm iommu/tegra241-cmdqv: Reset VCMDQ in tegra241_vcmdq_hw_init_user() 2026-01-31 10:22:08 +01:00
generic_pt iommupt: Only cache flush memory changed by unmap 2026-01-28 15:14:17 +01:00
intel iommu/vt-d: Treat PAGE_SNOOP and PWSNP separately 2026-02-06 11:01:00 +01:00
iommufd iommufd: Initialize batch->kind in batch_clear() 2026-01-28 12:49:17 -04:00
riscv iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00
Kconfig Merge branches 'arm/smmu/updates', 'arm/smmu/bindings', 'mediatek', 'nvidia/tegra', 'intel/vt-d', 'amd/amd-vi' and 'core' into next 2025-11-28 08:44:21 +01:00
Makefile iommu/io-pgtable-arm-selftests: Use KUnit 2025-11-13 16:25:32 +01:00
apple-dart.c iommu/apple-dart: fix device leak on of_xlate() 2025-11-17 09:49:42 +01:00
dma-iommu.c VFIO updates for v6.19-rc1 2025-12-04 18:42:48 -08:00
dma-iommu.h iommu: Drop sw_msi from iommu_domain 2025-03-25 10:18:19 -03:00
exynos-iommu.c iommu/exynos: fix device leak on of_xlate() 2025-11-17 09:49:42 +01:00
fsl_pamu.c iommu/fsl: fix all kernel-doc warnings in fsl_pamu.c 2023-03-22 14:50:15 +01:00
fsl_pamu.h
fsl_pamu_domain.c iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00
fsl_pamu_domain.h
hyperv-iommu.c x86/hyperv: Clean up hv_map/unmap_interrupt() return values 2025-07-09 23:49:25 +00:00
io-pgfault.c iommu: Fix potential memory leak in iopf_queue_remove_device() 2025-02-10 14:49:30 +01:00
io-pgtable-arm-selftests.c iommu/io-pgtable-arm-selftests: Use KUnit 2025-11-13 16:25:32 +01:00
io-pgtable-arm-v7s.c iommu/io-pgtable-arm-v7s: Remove split on unmap behavior 2024-11-06 15:42:36 +00:00
io-pgtable-arm.c iommu/io-pgtable-arm: fix size_t signedness bug in unmap path 2026-01-20 18:07:35 +01:00
io-pgtable-arm.h
io-pgtable-dart.c iommu/io-pgtable-dart: Fix off by one error in table index check 2025-09-13 08:07:25 +02:00
io-pgtable.c iommu/amd: Remove AMD io_pgtable support 2025-11-05 09:08:57 +01:00
iommu-debugfs.c
iommu-pages.c iommu/pages: Add support for incoherent IOMMU page table walkers 2025-11-05 09:47:43 +01:00
iommu-pages.h iommu/pages: Add support for incoherent IOMMU page table walkers 2025-11-05 09:47:43 +01:00
iommu-priv.h iommufd: Register iommufd mock devices with fwspec 2025-09-30 09:54:12 -03:00
iommu-sva.c iommu/sva: include mmu_notifier.h header 2026-01-14 22:16:25 -08:00
iommu-sysfs.c iommu/sysfs: constify the class struct 2024-10-29 09:50:24 +01:00
iommu-traces.c iommu: Remove detach_dev callback 2023-01-13 16:39:18 +01:00
iommu.c iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00
iova.c - The series "zram: optimal post-processing target selection" from 2024-11-23 09:58:07 -08:00
ipmmu-vmsa.c iommu/ipmmu-vmsa: fix device leak on of_xlate() 2025-11-17 09:49:43 +01:00
irq_remapping.c IOMMU Updates for Linux v6.10 2024-05-18 10:55:13 -07:00
irq_remapping.h iommu/vt-d: Allocate DMAR fault interrupts locally 2024-04-26 11:57:36 +02:00
msm_iommu.c iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00
msm_iommu.h
msm_iommu_hw-8xxx.h
mtk_iommu.c Merge branches 'arm/smmu/updates', 'arm/smmu/bindings', 'mediatek', 'nvidia/tegra', 'intel/vt-d', 'amd/amd-vi' and 'core' into next 2025-11-28 08:44:21 +01:00
mtk_iommu_v1.c iommu/mediatek-v1: add missing larb count sanity check 2025-11-17 09:49:44 +01:00
of_iommu.c iommu: Get DT/ACPI parsing into the proper probe path 2025-03-11 14:05:43 +01:00
omap-iommu-debug.c iommu/omap: Fix buffer overflow in debugfs 2022-09-07 10:42:28 +02:00
omap-iommu.c iommu/omap: simplify probe_device() error handling 2025-11-17 09:49:45 +01:00
omap-iommu.h iommu/omap: fix device leaks on probe_device() 2025-11-17 09:49:44 +01:00
omap-iopgtable.h
rockchip-iommu.c iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00
s390-iommu.c iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00
sprd-iommu.c iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00
sun50i-iommu.c iommu/sun50i: fix device leak on of_xlate() 2025-11-17 09:49:45 +01:00
tegra-smmu.c iommu/tegra: fix device leak on probe_device() 2025-11-17 09:49:45 +01:00
virtio-iommu.c iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00