IOMMU and DMA Mapping API subsystem update to v6.17
Merge Request Required Information
JIRA: https://issues.redhat.com/browse/RHEL-116573
JIRA: https://issues.redhat.com/browse/RHEL-123791
JIRA: https://issues.redhat.com/browse/RHEL-125486
Upstream Status: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
CVE: CVE-2025-38594
CVE: CVE-2025-38676
CVE: CVE-2025-38688
CVE: CVE-2025-39739
CVE: CVE-2025-39961
CVE: CVE-2025-39966
CVE: CVE-2025-40058
Depends: !1384 (merged)
Depends: !1507 (merged)
Depends: !1577 (merged)
Summary of Changes
Updates IOMMU and DMA Mapping API subsystems through the v6.17 merge window.
The development branch currently has 178 commits that correspond to the IOMMU and DMA Mapping API subsystems update.
Conflicts
Legend: ds is used for downstream and us is used for upstream commits.
-
A merge conflict in drivers/iommu/io-pgtable-arm.c function arm_lpae_do_selftests() due to fa26198d30f3 ("iommu/io-pgtable-arm: dynamically allocate selftest device struct") and 3318f7b5cefb ("iommu/io-pgtable-arm: Add quirk to quiet WARN_ON()") solved upstream in 879b141b7cfa ("Merge branches 'fixes', 'apple/dart', 'arm/smmu/updates', 'arm/smmu/bindings', 'fsl/pamu', 'mediatek', 'renesas/ipmmu', 's390', 'intel/vt-d', 'amd/amd-vi' and 'core' into next")
ds: 3c8d3807 ("iommu/io-pgtable-arm: Add quirk to quiet WARN_ON()")
us: 3318f7b5cefb ("iommu/io-pgtable-arm: Add quirk to quiet WARN_ON()") -
Modify/delete conflict in drivers/iommu/riscv/iommu.c. The file does not exist in the downstream repository, but it is modified by upstream commit 4316ba4a5033 ("iommu/pages: Remove the order argument to iommu_free_pages()")
ds: 43f97752 ("iommu/pages: Remove the order argument to iommu_free_pages()")
us: 4316ba4a5033 ("iommu/pages: Remove the order argument to iommu_free_pages()") -
Modify/delete conflict in drivers/iommu/riscv/iommu.c. The file does not exist in the downstream repository, but it is modified by upstream commit 3e8e986ce8a0 ("iommu/pages: Remove iommu_free_page()"). drivers/iommu/rockchip-iommu.c was left unchanged (unsupported driver)
ds: ba089f18 ("iommu/pages: Remove iommu_free_page()")
us: 3e8e986ce8a0 ("iommu/pages: Remove iommu_free_page()") -
Modify/delete conflict in drivers/iommu/riscv/iommu.c. Currently the file does not exist in the downstream repository, but it is modified by upstream commit 5087f663c21e ("iommu/pages: Remove iommu_alloc_page_node()")
ds: 95ce8e3c ("iommu/pages: Remove iommu_alloc_page_node()")
us: 5087f663c21e ("iommu/pages: Remove iommu_alloc_page_node()") -
Modify/delete conflict in drivers/accel/amdxdna/aie2_pci.c. The file does not exist in the downstream repository, but it is modified by upstream commit 7c8896dd4a2a ("iommu: Remove IOMMU_DEV_FEAT_SVA")
ds: d6130fea ("iommu: Remove IOMMU_DEV_FEAT_SVA")
us: 7c8896dd4a2a ("iommu: Remove IOMMU_DEV_FEAT_SVA") -
Merge conflict in drivers/iommu/iommu.c due to downstream-only commit 806bdc79 ("iommu/arm-smmu: workaround DMA mode issues"). This specific downstream implementation has been left untouched, and the adjacent code next to it removed as per patch being applied.
ds: dd3f1431 ("iommu: Remove iommu_dev_enable/disable_feature()")
us: f984fb09e60e ("iommu: Remove iommu_dev_enable/disable_feature()") -
Merge conflict in drivers/iommu/Makefile due to upstream-only 5c0ebbd3c6c6 ("iommu/riscv: Add RISC-V IOMMU platform device driver") conflicting with the patch being applied.
ds: ed7a0f94 ("iommu: make inclusion of intel directory conditional")
us: ddcc66cfe83a ("iommu: make inclusion of intel directory conditional") -
Merge conflict in drivers/iommu/Makefile due to upstream-only 5c0ebbd3c6c6 ("iommu/riscv: Add RISC-V IOMMU platform device driver") conflicting with the patch being applied.
ds: f27e9572 ("iommu: make inclusion of amd directory conditional")
us: 85ef671f9727 ("iommu: make inclusion of amd directory conditional") -
Merge conflict in drivers/dma/idxd/init.c due to context difference in idxd_remove().
ds: 61ce77af ("dmaengine: idxd: Remove unnecessary IOMMU_DEV_FEAT_IOPF")
us: 853b01b5efd7 ("dmaengine: idxd: Remove unnecessary IOMMU_DEV_FEAT_IOPF") -
Modify/delete conflict in drivers/iommu/riscv/iommu.c. The file does not exist in the downstream repository, but it is modified by upstream commit.
-
Contextual conflict in drivers/iommu/virtio-iommu.c related to the addition of a 'const' type qualifier to viommu_ops (now removed) in the patch being backported and the fact that 72b6f7cd89cea ("iommu/virtio: Make instance lookup robust") had already been backported.
ds: 3cd4fb5f ("iommu: Remove ops.pgsize_bitmap from drivers that don't use it")
us: 8901812485de ("iommu: Remove ops.pgsize_bitmap from drivers that don't use it") -
Files in drivers/iommu/ related to currently unsupported downstream drivers have been reverted to their pre-patch state: exynos-iommu.c, mtk_iommu_v1.c, omap-iommu.c, rockchip-iommu.c, sprd-iommu.c, and sun50i-iommu.c.
ds: 3fdead74 ("iommu: Remove iommu_ops pgsize_bitmap from simple drivers")
us: cf39047e460e ("iommu: Remove iommu_ops pgsize_bitmap from simple drivers") -
Merge conflict in include/linux/iommu.h related to the documentation of pgsize_bitmap. Upstream commit 792ea7b6cafa ("iommu: Remove ops->pgsize_bitmap") already backported as downstream 5d2a8e11 removed the pgsize_bitmap entry while the base used for creating the patch still had pgsize_bitmap documented.
ds: 9b96afd4 ("iommu: Deprecate viommu_alloc op")
us: f842ea208e43 ("iommu: Deprecate viommu_alloc op")
Omitted
Omitted-fix: d41d75fe1b75 ("crypto: qat - fix DMA direction for compression on GEN2 devices")
Part of QAT subsystem update.
The following upstream commits have been omitted
-
01c13a1d0e347 ("iommu: make inclusion of riscv directory conditional")
Currently RISCV is not supported downstream -
e436576b02315 ("iommu: make inclusion of arm/arm-smmu-v3 directory conditional")
Reverted by upstream commit 9d49da438819 Revert "iommu: make inclusion of arm/arm-smmu-v3 directory conditional" -
41cb08555c41 ("treewide, timers: Rename from_timer() to timer_container_of()")
Backported in !1425 (merged) -
968e300068071 ("x86/cpuid: Set <asm/cpuid/api.h> as the main CPUID header")
-
46a7418a3aa6 ("iommu/apple-dart: Drop default ARCH_APPLE in Kconfig")
Currently not supported downstream -
2c223f7239f3 ("of: reserved_mem: Restructure call site for dma_contiguous_early_fixup()")
Fixes 8a6e02d0c00e ("of: reserved_mem: Restructure how the reserved memory regions are processed"), currently not available downstream -
KVM Updates (see !1640):
1da19c5ce0533 ("iommu/amd: KVM: SVM: Delete now-unused cached/previous GA tag fields")
c4cdbaf9d81c8 ("iommu/amd: KVM: SVM: Use pi_desc_addr to derive ga_root_ptr")
95d50ebe6df80 ("iommu/amd: KVM: SVM: Pass NULL @vcpu_info to indicate "not guest mode"")
53527ea1b7022 ("iommu: KVM: Split "struct vcpu_data" into separate AMD vs. Intel structs")
3be405e89f3da ("iommu/amd: Document which IRTE fields amd_iommu_update_ga() can modify")
08d9ccdd1a5c7 ("iommu/amd: KVM: SVM: Infer IsRun from validity of pCPU destination")
0b2b541fa3cd8 ("iommu/amd: Factor out helper for manipulating IRTE GA/CPU info")
f965255dc5033 ("iommu/amd: KVM: SVM: Set pCPU info in IRTE when setting vCPU affinity")
6df262f915abc ("iommu/amd: KVM: SVM: Add IRTE metadata to affined vCPU's list if AVIC is inhibited")
a23480fe21de6 ("iommu/amd: WARN if KVM calls GA IRTE helpers without virtual APIC support")
b9e53f9ff4a88 ("iommu/amd: KVM: SVM: Allow KVM to control need for GA log interrupts")
- 212c439bdd8f ("iommu/arm: Add BBM Level 2 smmu feature")
Depends on support to feature not yet available downstream (see !1662 (merged)):
3df6979d222b8 ("arm64: mm: split linear mapping if BBML2 unsupported on secondary CPUs")
a166563e7ec37 ("arm64: mm: support large block mapping when rodata=full")
83bbd6be7d171 ("arm64/mm: Elide tlbi in contpte_convert() under BBML2")
212c439bdd8f9 ("iommu/arm: Add BBM Level 2 smmu feature")
5aa4b625762e5 ("arm64: Add BBM Level 2 cpu feature")
-
75952c497550 ("iommu/vt-d: Use pci_is_display()")
Backported in !1492 (merged) -
9ffaf5229055 ("iommu/s390: Make attach succeed when the device was surprise removed")
Backported in !1477 (merged) -
b3506e9bcc77 ("iommu/s390: Fix memory corruption when using identity domain")
Backported in !1477 (merged)
RHEL-only
CONFIG_X86_POSTED_MSI=y.
File moved from redhat/configs/rhel/generic/CONFIG_X86_POSTED_MSI to redhat/configs/common/generic/x86/CONFIG_X86_POSTED_MSI.
Owners file update in documentation!985 (merged)
Signed-off-by: Eder Zulian ezulian@redhat.com