linux/drivers/iommu
Linus Torvalds 4da9dedf3f IOMMU updates for v7.4:
- Core:
     - Detect scatterlist length overflows and finalize deferred domain
       attachments before mapping MSI pages.
     - Consolidate x86 MSI reserved-region handling and clean up internal DMA
       and SVA helpers.
 
   - AMD IOMMU:
     - Add IOMMU PerfOpt support, enabled by amdgpu for supported integrated
       GPUs in identity domains.
     - Restrict forced identity mapping to GPUs that require it.
     - Fix kdump device-table allocation and reuse, ATS configuration error
       handling, and an interrupt-remapping allocation leak.
     - Clean up device probing and initialization.
     - Add Vasant Hegde as an AMD IOMMU maintainer.
 
   - ARM SMMUv2:
     - Device-tree binding updates for Qualcomm Maili and Nord SoCs.
 
   - ARM SMMUv3:
     - Work around hardware integration issue on Google Tensor G5 SoCs where all
       DMA transactions appear as instruction fetches.
     - Allow command queue size to be configured on the kernel command-line.
     - Reduce queue sizes when running as a kdump kernel.
     - Fix some pre-existing issues in the driver and kunit tests reported by
       Sashiko.
     - Fix handling of Arm hardware errata relating to the contiguous hint
       when using SVA.
     - Rework the TLB invalidation logic in preparation for enabling iommu-pt in
       future.
     - Minor cleanups in preparation for improving support for kdump.
 
   - Apple DART:
     - Support device-tree DMA aperture specifications.
 
   - Broadcom:
     - Add BCM2712 IOMMU support for Raspberry Pi 5 display and multimedia
       devices, including the generic page-table format and shared TLB cache
       management.
 
   - Hyper-V:
     - Add a para-virtualized guest IOMMU driver with guest-managed stage-1 page
       tables and page-selective IOTLB invalidation.
 
   - Intel VT-d:
     - Enhanced IQE fault handling for batched multiple descriptors,
     - Optimization of page-table level calculation in compute_vasz_lg2_ss(),
     - Fixes for several pre-existing issues reported by Sashiko,
     - General cleanup and refinement.
 
   - RISC-V:
     - Report cache-coherency capability for coherent devices, enabling
       VFIO/iommufd use.
 
   - Samsung Exynos:
     - Support SysMMUs without BLOCK mode, fixing their enable sequence and TLB
       invalidation.
     - Improve v7 fault diagnostics with transaction information.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEr9jSbILcajRFYWYyK/BELZcBGuMFAmrXSIEACgkQK/BELZcB
 GuOKcQ/+MbSzWQ2LxAZsHUpEuiY26Kgw0GZ1MZenLVD5MYMyOX0bLRWsVNZk2Koc
 WiNs4oIQQeByOs7l0pjpViy+AuykHw48cDsfOC49mJWYYgQt7Pl3dq3smHjlcxKq
 SUYKwejAtyvMMtaY1oXXb7HsYZQ/AadzDlxbYTR/0foIAv+7u0yFdj/k88cp0OAb
 ECCw/T06CqI2B/OiOq+xOXrrPGMMW5rs1dmK9mnMuXuK/zGu0Oll4f4mRkSSrExv
 BOh7u0NbjFCzMb8xb4lnd8Kjv1ccdAvysQjGik5Zd2MJcd0kdRYyxn+8eXd9ib3v
 87bshvz/rnHrBGLx05blJMt7COwMhbtucB3vqxeAFA6hlgigUFdJGYt4tLZCrN5i
 jZ/x5G+iPiYtDy5vpu5a3AcYpLVRXcXOCh+HQvJeTdoWZEV3yMkH4TIEkDJnhi5x
 fOyRsuVCoED176G3RqaRFmLogSh7eAxExmugsqGHUVasktuTbJeojnAcy5m0QaV/
 DuMDqrxSPtPRwV55sUmB82o8zdNoILatvOImpHAi6Wye+DG1nLdlIaGhet1DFCa4
 yDnuCotmVXDAQk1y4AiXKy9bdeU29u2U59rY41SHC6REDDIcgCKa2KQBCxRK7nAy
 jwas3OLQROaWa4RurQC5j45bGTQTW6zmls6F8taghGqSTaJTTCY=
 =uAQk
 -----END PGP SIGNATURE-----

Merge tag 'iommu-updates-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux

Pull IOMMU updates from Joerg Roedel:
 "Core:
   - Detect scatterlist length overflows and finalize deferred domain
     attachments before mapping MSI pages
   - Consolidate x86 MSI reserved-region handling and clean up internal
     DMA and SVA helpers

  AMD IOMMU:
   - Add IOMMU PerfOpt support, enabled by amdgpu for supported
     integrated GPUs in identity domains
   - Restrict forced identity mapping to GPUs that require it
   - Fix kdump device-table allocation and reuse, ATS configuration
     error handling, and an interrupt-remapping allocation leak
   - Clean up device probing and initialization
   - Add Vasant Hegde as an AMD IOMMU maintainer

  ARM SMMUv2:
   - Device-tree binding updates for Qualcomm Maili and Nord SoCs

  ARM SMMUv3:
   - Work around hardware integration issue on Google Tensor G5 SoCs
     where all DMA transactions appear as instruction fetches
   - Allow command queue size to be configured on the kernel
     command-line
   - Reduce queue sizes when running as a kdump kernel
   - Fix some pre-existing issues in the driver and kunit tests reported
     by Sashiko
   - Fix handling of Arm hardware errata relating to the contiguous hint
     when using SVA
   - Rework the TLB invalidation logic in preparation for enabling
     iommu-pt in future
   - Minor cleanups in preparation for improving support for kdump

  Apple DART:
   - Support device-tree DMA aperture specifications

  Broadcom:
   - Add BCM2712 IOMMU support for Raspberry Pi 5 display and multimedia
     devices, including the generic page-table format and shared TLB
     cache management

  Hyper-V:
   - Add a para-virtualized guest IOMMU driver with guest-managed
     stage-1 page tables and page-selective IOTLB invalidation

  Intel VT-d:
   - Enhanced IQE fault handling for batched multiple descriptors,
   - Optimization of page-table level calculation in
     compute_vasz_lg2_ss(),
   - Fixes for several pre-existing issues reported by Sashiko,
   - General cleanup and refinement

  RISC-V:
   - Report cache-coherency capability for coherent devices, enabling
     VFIO/iommufd use

  Samsung Exynos:
   - Support SysMMUs without BLOCK mode, fixing their enable sequence
     and TLB invalidation
   - Improve v7 fault diagnostics with transaction information"

* tag 'iommu-updates-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux: (69 commits)
  MAINTAINERS: Make Vasant Hegde AMD IOMMU maintainer
  iommu/hyperv: Make hv_iommu_device static
  iommu/hyperv: Add missing PCI dependency for the guest IOMMU driver
  iommu/amd: Don't allocate kdump device table from DMA32
  iommu/amd: Program device table when kdump reuse fails
  iommu/dma: Clean up redundant MSI cookie check
  iommu/dma: Catch scatterlist length overflows
  iommu/hyperv: Add page-selective IOTLB flush support
  iommu/hyperv: Add para-virtualized IOMMU support for Hyper-V guest
  iommu/x86: Add architectural MSI reserved region helper
  Drivers: hv: Add logical device ID registry for vPCI devices
  hyperv: Introduce new hypercall interfaces used by Hyper-V guest IOMMU
  iommu: Make iommu-dma helpers private
  iommu/arm-smmu-v3: Don't rb_erase() a never-inserted stream node
  iommu/arm-smmu-v3: Add Q_POS() macro
  iommu/arm-smmu-v3: Add arm_smmu_attach_release()
  iommu/arm-smmu-v3: Disable the impl before disabling the SMMU on shutdown
  iommu/arm-smmu-v3: Populate the tlbi at the top of the call chain
  iommu/arm-smmu-v3: Precompute the invalidation commands
  iommu/arm-smmu-v3: Keep track in arm_smmu_invs if range invalidation is used
  ...
2026-10-23 14:48:26 -10:00
..
amd Merge branches 'apple/dart', 'arm/smmu/updates', 'arm/smmu/bindings', 'hyper-v', 'samsung/exynos', 'riscv', 'broadcom', 'intel/vt-d', 'amd/amd-vi' and 'core' into next 2026-10-20 09:43:47 +02:00
arm IOMMU updates for v7.4: 2026-10-23 14:48:26 -10:00
generic_pt IOMMU updates for v7.4: 2026-10-23 14:48:26 -10:00
hyperv iommu/hyperv: Make hv_iommu_device static 2026-10-15 17:50:57 +02:00
intel IOMMU updates for v7.4: 2026-10-23 14:48:26 -10:00
iommufd iommufd v7.4 merge window pull request 2026-10-22 13:48:30 -10:00
riscv iommu/riscv: Report cache coherency capability 2026-09-24 13:19:26 +02:00
apple-dart.c iommu: apple-dart: Support specifying the DMA aperture in the DT 2026-09-24 13:35:53 +02:00
bcm2712-iommu-cache.c iommu: Add Broadcom BCM2712 IOMMU driver 2026-09-28 10:19:14 +02:00
bcm2712-iommu-cache.h iommu: Add Broadcom BCM2712 IOMMU driver 2026-09-28 10:19:14 +02:00
bcm2712-iommu.c iommu: Add Broadcom BCM2712 IOMMU driver 2026-09-28 10:19:14 +02:00
dma-iommu.c IOMMU updates for v7.4: 2026-10-23 14:48:26 -10:00
dma-iommu.h iommu: Tidy domain for iommu_setup_dma_ops() 2026-01-10 10:26:43 +01:00
exynos-iommu.c iommu/exynos: decode the v7 fault transaction info 2026-09-24 13:18:03 +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
fsl_pamu.c iommu/fsl: use platform_device_set_of_node() 2026-07-10 16:07:09 +02:00
fsl_pamu.h
io-pgfault.c iommu/iommufd: Fix IOPF group ownership UAF 2026-07-26 13:16:21 -03: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, debugobjects: avoid gcc-16.1 section mismatch warnings 2026-05-28 09:07:12 +02:00
io-pgtable-arm.c iommu/io-pgtable-arm: Use address conversion consistently 2026-05-19 11:03:45 +02:00
io-pgtable-arm.h
io-pgtable-dart.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
io-pgtable.c iommu/amd: Remove AMD io_pgtable support 2025-11-05 09:08:57 +01:00
iommu-debug-pagealloc.c iommu: debug-pagealloc: Use page_ext_get_from_phys() 2026-01-21 12:51:49 +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: Fix iommu_pages_flush_incoherent() for non-x86 2026-04-27 13:59:36 +02:00
iommu-priv.h iommu: Make iommu-dma helpers private 2026-10-09 09:34:12 +02:00
iommu-sva.c iommu/sva: remove iommu_sva_present flag 2026-09-24 13:22:35 +02:00
iommu-sysfs.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
iommu-traces.c
iommu.c iommu: Finalize deferred attachments when mapping MSI pages 2026-09-24 13:53:36 +02:00
iova.c Merge branches 'arm/smmu/updates', 'arm/smmu/bindings', 'mediatek', 'qualcomm/msm', 'rockchip', 'ti/omap', 'riscv', 'intel/vt-d', 'amd/amd-vi', 'core' and 'typos' into next 2026-08-11 09:12:19 +02:00
ipmmu-vmsa.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
irq_remapping.c iommu/hyperv: Create hyperv subdirectory under drivers/iommu 2026-06-07 22:55:56 -07:00
irq_remapping.h iommu/vt-d: Allocate DMAR fault interrupts locally 2024-04-26 11:57:36 +02:00
Kconfig Merge branches 'apple/dart', 'arm/smmu/updates', 'arm/smmu/bindings', 'hyper-v', 'samsung/exynos', 'riscv', 'broadcom', 'intel/vt-d', 'amd/amd-vi' and 'core' into next 2026-10-20 09:43:47 +02:00
Makefile iommu: Add Broadcom BCM2712 IOMMU driver 2026-09-28 10:19:14 +02:00
msm_iommu_hw-8xxx.h
msm_iommu.c iommu/msm: Unwind probe state on registration failure 2026-07-24 13:05:53 +00:00
msm_iommu.h
mtk_iommu_v1.c iommu/mediatek-v1: Fix off-by-one in MT2701_LARB_NR_MAX 2026-07-09 10:13:26 +02:00
mtk_iommu.c iommu/mtk: Fix spelling of correspondence in comment 2026-07-22 12:28:59 +00:00
of_iommu.c of: Factor arguments passed to of_map_id() into a struct 2026-06-12 10:25:39 -05:00
omap-iommu-debug.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
omap-iommu.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08: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/rockchip: Clear stale page faults before enabling stall 2026-07-26 13:10:27 +00:00
s390-iommu.c s390 updates for 7.4 merge window 2026-10-20 14:28:32 -10:00
sprd-iommu.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sun50i-iommu.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
tegra-smmu.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
virtio-iommu.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
vsi-iommu.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00