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>
History 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
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 iommu/fsl_pamu: hardcode the window address and size in pamu_config_ppaace 2021-04-07 10:56:52 +02:00
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 iommu/fsl_pamu: remove the snoop_id field 2021-04-07 10:56:52 +02:00
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 iommu/io-pgtable-arm: Move some definitions to a header 2020-09-28 23:48:06 +01:00
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: Fix IOMMU debugfs fallout 2019-02-26 11:15:58 +01:00
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
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
msm_iommu.c iommu: Pass in old domain to attach_dev callback functions 2025-10-27 13:55:35 +01:00
msm_iommu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 267 2019-06-05 17:30:29 +02:00
msm_iommu_hw-8xxx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 267 2019-06-05 17:30:29 +02:00
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 iommu/omap: Fix -Woverflow warnings when compiling on 64-bit architectures 2020-03-04 16:24:46 +01:00
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