* [git pull] IOMMU Updates for Linux v7.2
@ 2026-06-17 7:26 Joerg Roedel
0 siblings, 0 replies; only message in thread
From: Joerg Roedel @ 2026-06-17 7:26 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Will Deacon, linux-kernel, iommu
Hi Linus,
The following changes since commit 4549871118cf616eecdd2d939f78e3b9e1dddc48:
Linux 7.1-rc7 (2026-06-07 15:37:58 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git tags/iommu-updates-v7.2
for you to fetch changes up to dd8a3c6cd531dca5917111a94fa3074077f6ba5a:
Merge branches 'apple/dart', 'arm/smmu/updates', 'arm/smmu/bindings', 'rockchip', 'verisilicon', 'riscv', 'intel/vt-d', 'amd/amd-vi' and 'core' into next (2026-06-12 14:57:23 +0200)
----------------------------------------------------------------
IOMMU Updates for Linux v7.2
Including:
Core Code:
- Fix dma-iommu scatterlist length handling in the P2PDMA path.
- Extend the generic IOMMU page-table code with detailed gather
support for more precise invalidations.
- Add pending-gather tracking to generic page-table invalidation
handling.
- Add support for smaller virtual address sizes in the generic AMDv1
page-table format, including KUnit coverage.
- Fix page-size bitmap calculation for smaller VA configurations.
- Rework Arm io-pgtable allocation/freeing to consistently use the
iommu-pages API and address-conversion helpers.
- Add PCI ATS infrastructure for devices that require ATS, including
always-on ATS handling for pre-CXL devices.
AMD IOMMU:
- Fix several IOTLB invalidation details, including PDE handling,
flush-all behavior, and command address encoding.
- Honor IVINFO[VASIZE] when deriving address limits.
- Fix premature loop termination in init_iommu_one().
- Add Hygon family 18h model 4h IOAPIC support.
- Clean up legacy-mode handling, stale comments, dead IVMD
exclusion-range code, and unused address-size macros.
Arm SMMU / Arm SMMU v3:
- SMMUv2:
- Device-tree binding updates for Qualcomm Hawi, Nord and Shikra
SoCs.
- Constain the clocks which can be specified for recent Qualcomm
SoCs.
- Fix broken compatible string for Qualcomm prefetcher
configuration an add new entry for the Glymur MDSS.
- Ensure SMMU is powered-up when writing context bank for Adreno
client.
- SMMUv3:
- Fix off-by-one in queue allocation retry loop.
- Enable hardware update of access/dirty bits from the SMMU.
- Re-jig command construction to use separate inline helpers for
each command type.
Intel VT-d:
- Add the PCI segment number to DMA fault messages.
- Improve support for non-PRI mode SVA.
- Ensure atomicity during context entry teardown.
- Fix RB-tree corruption in the probe error path.
RISC-V IOMMU:
- Add NAPOT range invalidation support.
- Use detailed gather information for invalidation decisions.
- Compute the best stride for single invalidations.
- Advertise Svpbmt support to the generic page-table code.
- Add capability definitions and clean up command macro encoding.
VeriSilicon IOMMU:
- Add a new VeriSilicon IOMMU driver.
- Add devicetree binding documentation and MAINTAINERS coverage.
- Add the RK3588 VeriSilicon IOMMU node.
- Apply small cleanups and warning fixes in the new driver.
Rockchip IOMMU:
- Disable the fetch DTE time limit.
Apple DART:
- Correct a stale CONFIG_PCIE_APPLE macro name in a comment.
----------------------------------------------------------------
Akhil P Oommen (1):
dt-bindings: arm-smmu: Update the description for Glymur GPU SMMU
Ankit Soni (4):
iommu_pt: Fix pgsize_bitmap calculation in get_info for smaller vasz's
iommu_pt: support small VA for AMDv1
iommu_pt: add kunit config for 32-bit VA (amdv1_cfg_1)
iommu/amd: Adhere to IVINFO[VASIZE] for address limits
Anna Maniscalco (1):
iommu: arm-smmu-qcom: Ensure smmu is powered up in set_ttbr0_cfg
Arnd Bergmann (1):
iommu: vsi: avoid -Wformat-security warning
Benjamin Gaignard (3):
dt-bindings: iommu: verisilicon: Add binding for VSI IOMMU
iommu: Add verisilicon IOMMU driver
arm64: dts: rockchip: Add verisilicon IOMMU node on RK3588
Bibek Kumar Patro (1):
iommu/arm-smmu-qcom: Fix fastrpc compatible string in ACTLR client match table
Dan Carpenter (1):
iommu/vsi: Use list_for_each_entry()
Ethan Nelson-Moore (1):
iommu/apple-dart: correct CONFIG_PCIE_APPLE macro name in comment
Fangyu Yu (3):
iommu/riscv: Advertise Svpbmt support to generic page table
iommupt: Encode IOMMU_MMIO/IOMMU_CACHE via RISC-V Svpbmt bits
iommupt: Fixup build warning by using BIT_ULL() for RISCVPT_NC/IO
Fu Hao (1):
iommu/amd: Add support for Hygon family 18h model 4h IOAPIC
Guanghui Feng (1):
iommu/vt-d: Improve IOMMU fault information
Jason Gunthorpe (22):
iommu: Split the kdoc comment for struct iommu_iotlb_gather
iommupt: Add struct iommupt_pending_gather
iommupt: Add PT_FEAT_DETAILED_GATHER
iommu/riscv: Enable PT_FEAT_DETAILED_GATHER and pass gather to iotlb_inval
iommu/riscv: Compute best stride for single invalidation
iommu/riscv: Add RISCV_IOMMU_CAPABILITIES_NL
iommu/riscv: Include the dword number in RISCV_IOMMU_CMD macros
iommu/riscv: Add NAPOT range invalidation support
iommu/arm-smmu-v3: Add struct arm_smmu_cmd to represent the HW format command
iommu/arm-smmu-v3: Use the HW arm_smmu_cmd in cmdq selection functions
iommu/arm-smmu-v3: Use the HW arm_smmu_cmd in cmdq submission functions
iommu/arm-smmu-v3: Convert arm_smmu_cmdq_batch cmds to struct arm_smmu_cmd
iommu/arm-smmu-v3: Remove CMDQ_OP_CFGI_CD_ALL from arm_smmu_cmdq_build_cmd()
iommu/arm-smmu-v3: Directly encode simple commands
iommu/arm-smmu-v3: Directly encode CMDQ_OP_ATC_INV
iommu/arm-smmu-v3: Directly encode CMDQ_OP_SYNC
iommu/arm-smmu-v3: Directly encode TLBI commands
iommu/amd: Simplify build_inv_address()
iommu/amd: Pass last in through to build_inv_address()
iommu/amd: Have amd_iommu_domain_flush_pages() use last
iommu/amd: Make CMD_INV_IOMMU_ALL_PAGES_ADDRESS match the spec
iommu/amd: Control INVALIDATE_IOMMU_PAGES PDE from the gather
Joerg Roedel (1):
Merge branches 'apple/dart', 'arm/smmu/updates', 'arm/smmu/bindings', 'rockchip', 'verisilicon', 'riscv', 'intel/vt-d', 'amd/amd-vi' and 'core' into next
Komal Bajaj (1):
dt-bindings: arm-smmu: qcom: Add compatible for Qualcomm Shikra SoC
Krzysztof Kozlowski (2):
dt-bindings: arm-smmu: Constrain clocks for newer Qualcomm variants
dt-bindings: arm-smmu: Correct and add constraints for Hawi, Shikra and Kaanapali
Leo Jiang (1):
iommu/arm-smmu-v3: Limit queue allocation retry boundary to PAGE_SIZE
Li RongQing (1):
iommu/dma-iommu: Fix wrong scatterlist length assignment in P2PDMA path
Lokanadha M R (1):
iommu/arm-smmu-qcom: Add glymur MDSS to ACTLR client table
Lu Baolu (1):
iommu/vt-d: Avoid WARNING in sva unbind path
Michael Bommarito (1):
iommu/vt-d: Clear Present bit before tearing down scalable-mode context entry
Michał Grzelak (1):
iommu/vt-d: Remove typo from pasid_pte_config_nested()
Mostafa Saleh (3):
iommu/io-pgtable-arm: Use consistent sizes for page allocation and freeing
iommu/io-pgtable-arm: Rework to use the iommu-pages API
iommu/io-pgtable-arm: Use address conversion consistently
Mukesh Ojha (1):
dt-bindings: arm-smmu: qcom: Add Hawi compatible for Application processor
Nicolin Chen (4):
iommu/arm-smmu-v3-sva: Enable Hardware Access and Hardware Dirty bits
PCI: Add pci_ats_required() for CXL.cache capable devices
PCI: Allow ATS to be always on for pre-CXL devices
iommu/arm-smmu-v3: Allow ATS to be always on
Pranjal Shrivastava (1):
iommu/vt-d: Fix RB-tree corruption in probe error path
Sean Christopherson (2):
iommu/amd: Explicitly bail from enable_iommus_vapic() when in legacy mode
iommu/amd: Fix a stale comment about which legacy mode is user visible
Shawn Guo (1):
dt-bindings: arm-smmu: Add compatible for Qualcomm Nord SoC
Simon Xue (1):
iommu/rockchip: disable fetch dte time limit
Vasant Hegde (1):
iommu/amd: Fix premature break in init_iommu_one()
Wei Wang (1):
iommu/amd: Remove unused IOMMU_IN/OUT_ADDR_BIT_SIZE macros
Weinan Liu (1):
iommu/amd: Don't split flush for amd_iommu_domain_flush_all()
Yu Zhang (1):
iommu/amd: Remove dead code for exclusion ranges in IVMD
.../devicetree/bindings/iommu/arm,smmu.yaml | 44 +-
.../bindings/iommu/verisilicon,iommu.yaml | 71 ++
MAINTAINERS | 8 +
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 11 +
drivers/iommu/Kconfig | 11 +
drivers/iommu/Makefile | 1 +
drivers/iommu/amd/amd_iommu.h | 6 +-
drivers/iommu/amd/amd_iommu_types.h | 29 +-
drivers/iommu/amd/init.c | 63 +-
drivers/iommu/amd/iommu.c | 181 +++--
drivers/iommu/amd/pasid.c | 2 +-
drivers/iommu/apple-dart.c | 2 +-
.../iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 24 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 10 +
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 558 +++++++--------
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 249 ++++---
drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c | 16 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 13 +-
drivers/iommu/dma-iommu.c | 2 +-
drivers/iommu/generic_pt/fmt/amdv1.h | 1 +
drivers/iommu/generic_pt/fmt/iommu_riscv64.c | 4 +-
drivers/iommu/generic_pt/fmt/riscv.h | 11 +-
drivers/iommu/generic_pt/iommu_pt.h | 110 ++-
drivers/iommu/generic_pt/kunit_generic_pt.h | 10 +-
drivers/iommu/generic_pt/kunit_iommu_pt.h | 5 +-
drivers/iommu/intel/dmar.c | 9 +-
drivers/iommu/intel/iommu.c | 6 +-
drivers/iommu/intel/iommu.h | 11 +
drivers/iommu/intel/pasid.c | 16 +-
drivers/iommu/intel/svm.c | 12 +-
drivers/iommu/io-pgtable-arm.c | 88 ++-
drivers/iommu/riscv/iommu-bits.h | 123 ++--
drivers/iommu/riscv/iommu.c | 162 ++++-
drivers/iommu/rockchip-iommu.c | 8 +
drivers/iommu/vsi-iommu.c | 791 +++++++++++++++++++++
drivers/pci/ats.c | 47 ++
drivers/pci/pci.h | 9 +
drivers/pci/quirks.c | 42 ++
include/linux/generic_pt/common.h | 9 +
include/linux/iommu.h | 42 +-
include/linux/pci-ats.h | 3 +
include/uapi/linux/pci_regs.h | 1 +
42 files changed, 2055 insertions(+), 766 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iommu/verisilicon,iommu.yaml
create mode 100644 drivers/iommu/vsi-iommu.c
Please pull.
Thanks,
Joerg
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-17 7:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-17 7:26 [git pull] IOMMU Updates for Linux v7.2 Joerg Roedel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox