linux/drivers/pci
Linus Torvalds d076a8d3b9 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.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEr9jSbILcajRFYWYyK/BELZcBGuMFAmoyS6IACgkQK/BELZcB
 GuNS4BAAvA0o/fG6XDypkBRX/lIce2/2q+/iQCGNkyHxtzdD+gMBW+RS1HQ6lKqU
 iKWhbiZIrSc9N/xK99Fi+3DSi1T5QjU6kdaNLH0nag5EwncbtlqmogsNwACJApiq
 4f6hbql4rtkiwfX77L4qM5ko+lMMlA+GeHOpz46DUSAU6e/6xRJe0HECHeiJGJFo
 KnE/KaZQVhbcMVPObbyCQB+J6MkrQNSVopQ7cxulnyIbddkhDmaA/q4Qna0y3/ik
 ctDn5eouQF8OxhyrzGa7UFkaMjIfGCH/kY/x/avqg8q8iUelNo39OSQzKqXpR4A8
 OhODTxQ3A3dVF2wAjcdxQFPCsSAd09k/t6UBM/4rsKe0P4Q06rIUwAPtJpMrontS
 yQdG91F/9bIGUOa184spMxgrepr9VCx2vls+p28DavyOMjvtjshef1R+5Dl7vnW+
 HibSDWbiy8VwQWy+QKCYMeFD1kKcJdaeaailbPtDOzJ8M0Ikm3nZ6+jIR9bQBfrr
 NfiOSa+gkfSdCUv0SQ8Gie84gIVJOeiIHF3WsBzbpzx8rYGH7WdUGvsY2WTDcMCL
 JqEQatT7u4fQGO5p3gbvmzawMMPNjhbdYFWaBs1Y3j0lS4FHqsTQlUhOKfzY2HCz
 diSXFSKvurSyKPZzIrxTHIbpD7QvOoMmQYoAsjWi0PwMna2YUa8=
 =hD8h
 -----END PGP SIGNATURE-----

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

Pull iommu updates from Joerg Roedel:
 "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
      - Constrain 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"

* tag 'iommu-updates-v7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux: (66 commits)
  iommu/dma-iommu: Fix wrong scatterlist length assignment in P2PDMA path
  iommu/amd: Control INVALIDATE_IOMMU_PAGES PDE from the gather
  iommu/amd: Make CMD_INV_IOMMU_ALL_PAGES_ADDRESS match the spec
  iommu/amd: Have amd_iommu_domain_flush_pages() use last
  iommu/amd: Pass last in through to build_inv_address()
  iommu/amd: Simplify build_inv_address()
  iommu/apple-dart: correct CONFIG_PCIE_APPLE macro name in comment
  iommu/vt-d: Fix RB-tree corruption in probe error path
  iommu/vt-d: Improve IOMMU fault information
  iommu/vt-d: Remove typo from pasid_pte_config_nested()
  iommu/vt-d: Clear Present bit before tearing down scalable-mode context entry
  iommu/vt-d: Avoid WARNING in sva unbind path
  dt-bindings: arm-smmu: Correct and add constraints for Hawi, Shikra and Kaanapali
  dt-bindings: arm-smmu: Add compatible for Qualcomm Nord SoC
  iommu/amd: Don't split flush for amd_iommu_domain_flush_all()
  iommu/rockchip: disable fetch dte time limit
  iommu/arm-smmu-v3: Allow ATS to be always on
  PCI: Allow ATS to be always on for pre-CXL devices
  PCI: Add pci_ats_required() for CXL.cache capable devices
  iommu/vsi: Use list_for_each_entry()
  ...
2026-06-17 12:24:50 -07:00
..
controller Devicetree updates for v7.2: 2026-06-17 11:54:57 -07:00
endpoint pci-v7.1-changes 2026-04-15 14:41:21 -07:00
hotplug Merge branch 'pci/reset' 2026-04-13 12:50:05 -05:00
msi PCI/MSI: Add TODO comment about legacy pcim_enable_device() side-effect 2026-02-23 09:01:20 -06:00
pcie Merge branch 'pci/ptm' 2026-04-13 12:50:04 -05:00
pwrctrl driver core: Replace dev->of_node_reused with dev_of_node_reused() 2026-04-26 23:50:20 +02:00
switch Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
access.c PCI: Revert the cfg_access_lock lockdep mechanism 2024-06-04 12:10:05 -05:00
ats.c PCI: Allow ATS to be always on for pre-CXL devices 2026-05-28 09:34:42 +02:00
bus.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
devres.c PCI: Remove useless WARN_ON() from devres 2026-01-14 11:00:00 -06:00
doe.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ecam.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
host-bridge.c PCI: Export pci_get_host_bridge_device() for use by pci-keystone 2025-11-13 12:20:46 -06:00
ide.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
iomap.c PCI: Remove hybrid-devres usage warnings from kernel-doc 2025-05-20 07:39:16 +00:00
iov.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
irq.c
Kconfig PCI: Clean up dead code in Kconfig 2026-03-30 17:21:46 -05:00
Makefile Merge branch 'pci/trace' 2026-02-06 17:09:26 -06:00
mmap.c PCI/sysfs: Compile pci-sysfs.c only if CONFIG_SYSFS=y 2024-03-05 16:08:43 -06:00
npem.c PCI/NPEM: Set LED_HW_PLUGGABLE for hotplug-capable ports 2026-04-06 12:34:28 -05:00
of_property.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
of.c driver core: Replace dev->of_node_reused with dev_of_node_reused() 2026-04-26 23:50:20 +02:00
p2pdma.c PCI/P2PDMA: Add Google SoCs to the P2P DMA host bridge list 2026-04-10 17:27:39 -05:00
pci-acpi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pci-bridge-emul.c PCI: Rename CRS Completion Status to RRS 2024-09-10 19:52:30 -05:00
pci-bridge-emul.h
pci-driver.c PCI: Initialize temporary device in new_id_store() 2026-05-08 15:50:06 -05:00
pci-label.c
pci-mid.c PCI/PM: Switch to new Intel CPU model defines 2024-06-11 17:08:14 -05:00
pci-pf-stub.c PCI: Add missing MODULE_DESCRIPTION() macros 2024-07-08 08:35:35 +00:00
pci-stub.c PCI: Add missing MODULE_DESCRIPTION() macros 2024-07-08 08:35:35 +00:00
pci-sysfs.c pci-v7.1-changes 2026-04-15 14:41:21 -07:00
pci.c PCI: Don't fallback to bus reset after failed slot reset 2026-04-27 17:26:59 -05:00
pci.h PCI: Allow ATS to be always on for pre-CXL devices 2026-05-28 09:34:42 +02:00
probe.c pci-v7.1-changes 2026-04-15 14:41:21 -07:00
proc.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
quirks.c PCI: Allow ATS to be always on for pre-CXL devices 2026-05-28 09:34:42 +02:00
rebar.c PCI: Fix Resizable BAR restore order 2026-01-22 10:29:55 -06:00
remove.c PCI/pwrctrl: Switch to pwrctrl create, power on/off, destroy APIs 2026-01-16 13:23:38 -06:00
rom.c
search.c PCI: Add PCI_BRIDGE_NO_ALIAS quirk for ASPEED AST1150 2026-01-13 11:46:33 -06:00
setup-bus.c PCI: Fix alignment calculation for resource size larger than align 2026-03-27 10:19:08 -05:00
setup-cardbus.c PCI: Move CardBus bridge scanning to setup-cardbus.c 2026-01-27 16:36:53 -06:00
setup-res.c PCI: Update saved_config_space upon resource assignment 2026-05-08 15:50:06 -05:00
slot.c s390 updates for 7.1 merge window 2026-04-22 11:13:45 -07:00
syscall.c
tph.c pci-v7.1-changes 2026-04-15 14:41:21 -07:00
trace.c PCI: trace: Add PCI controller tracepoint feature 2026-04-07 20:12:16 +05:30
tsm.c PCI/TSM: Add 'dsm' and 'bound' attributes for dependent functions 2025-11-14 15:06:57 -08:00
vc.c
vgaarb.c PCI/VGA: Pass errors from pci_set_vga_state() up 2026-03-25 13:28:49 -05:00
vpd.c sysfs: treewide: switch back to attribute_group::bin_attrs 2025-06-17 10:44:15 +02:00
xen-pcifront.c xen: branch for v7.0-rc3 2026-03-07 07:44:32 -08:00