lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z0A-K1MiL2CLa7Zd@8bytes.org>
Date: Fri, 22 Nov 2024 09:17:47 +0100
From: Joerg Roedel <joro@...tes.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Will Deacon <will@...nel.org>, linux-kernel@...r.kernel.org,
	iommu@...ts.linux.dev
Subject: [git pull] IOMMU Updates for Linux v6.13

Hi Linus,

This PR also comes with dependencies from the IOMMUFD tree via the
iommufd/arm-smmuv3-nested branch. It is possible that you already pulled
those from Jason. With that being said:

The following changes since commit 2d5404caa8c7bb5c4e0435f94b28834ae5456623:

  Linux 6.12-rc7 (2024-11-10 14:19:35 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git tags/iommu-updates-v6.13

for you to fetch changes up to 42f0cbb2a253bcd7d4f20e80462014622f19d88e:

  Merge branches 'intel/vt-d', 'amd/amd-vi' and 'iommufd/arm-smmuv3-nested' into next (2024-11-15 09:27:43 +0100)

----------------------------------------------------------------
IOMMU Updates for Linux v6.13:

Including:

	- Core Updates:
	  - Convert call-sites using iommu_domain_alloc() to more specific
	    versions and remove function.
	  - Introduce iommu_paging_domain_alloc_flags().
	  - Extend support for allocating PASID-capable domains to more
	    drivers.
	  - Remove iommu_present().
	  - Some smaller improvements.

	- New IOMMU driver for RISC-V.

	- Intel VT-d Updates:
	  - Add domain_alloc_paging support.
	  - Enable user space IOPFs in non-PASID and non-svm cases.
	  - Small code refactoring and cleanups.
	  - Add domain replacement support for pasid.

	- AMD-Vi Updates:
	  - Adapt to iommu_paging_domain_alloc_flags() interface and alloc V2
	    page-tables by default.
	  - Replace custom domain ID allocator with IDA allocator.
	  - Add ops->release_domain() support.
	  - Other improvements to device attach and domain allocation code
	    paths.

	- ARM-SMMU Updates:
	  - SMMUv2:
	    - Return -EPROBE_DEFER for client devices probing before their SMMU.
	    - Devicetree binding updates for Qualcomm MMU-500 implementations.
	  - SMMUv3:
	    - Minor fixes and cleanup for NVIDIA's virtual command queue driver.
	  - IO-PGTable:
	    - Fix indexing of concatenated PGDs and extend selftest coverage.
	    - Remove unused block-splitting support.

	- S390 IOMMU:
	  - Implement support for blocking domain.

	- Mediatek IOMMU:
	  - Enable 35-bit physical address support for mt8186.

	- OMAP IOMMU driver:
	  - Adapt to recent IOMMU core changes and unbreak driver.

----------------------------------------------------------------
Andy Shevchenko (1):
      iommu/vt-d: Increase buffer size for device name

Bartosz Golaszewski (1):
      iommu/sysfs: constify the class struct

Dmitry Baryshkov (1):
      dt-bindings: iommu: arm,smmu: Add Qualcomm SAR2130P compatible

Dr. David Alan Gilbert (1):
      iommu/vt-d: Remove unused dmar_msi_read

Gan Jie (1):
      iommu/iova: Fix typo 'adderss'

Jason Gunthorpe (15):
      iommu: Remove useless flush from iommu_create_device_direct_mappings()
      iommu/amd: Fix corruption when mapping large pages from 0
      iommu: Refactor __iommu_domain_alloc()
      iommu: Introduce iommu_paging_domain_alloc_flags()
      iommu: Add new flag to explictly request PASID capable domain
      iommu: Put domain allocation in __iommu_group_alloc_blocking_domain()
      iommu: Create __iommu_alloc_identity_domain()
      vfio: Remove VFIO_TYPE1_NESTING_IOMMU
      iommu/arm-smmu-v3: Report IOMMU_CAP_ENFORCE_CACHE_COHERENCY for CANWBS
      iommu/arm-smmu-v3: Implement IOMMU_HWPT_ALLOC_NEST_PARENT
      iommu/arm-smmu-v3: Expose the arm_smmu_attach interface
      iommu/io-pgtable-arm: Remove split on unmap behavior
      iommu/io-pgtable-arm-v7s: Remove split on unmap behavior
      iommu: Add a kdoc to iommu_unmap()
      iommu/arm-smmu-v3: Make set_dev_pasid() op support replace

Jinjie Ruan (1):
      iommu/vt-d: Use PCI_DEVID() macro

Joel Granados (3):
      iommu/vt-d: Separate page request queue from SVM
      iommu/vt-d: Move IOMMU_IOPF into INTEL_IOMMU
      iommufd: Enable PRI when doing the iommufd_hwpt_alloc

Joerg Roedel (6):
      iommu: Fix prototype of iommu_paging_domain_alloc_flags()
      iommu: Restore iommu_flush_iotlb_all()
      Merge branch 'core' into amd/amd-vi
      Merge tag 'arm-smmu-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu
      Merge branches 'arm/smmu', 'mediatek', 's390', 'ti/omap', 'riscv' and 'core' into next
      Merge branches 'intel/vt-d', 'amd/amd-vi' and 'iommufd/arm-smmuv3-nested' into next

Julia Lawall (1):
      iommu: Reorganize kerneldoc parameter names

Klaus Jensen (2):
      iommu/vt-d: Remove the pasid present check in prq_event_thread
      iommu/vt-d: Drop pasid requirement for prq initialization

Konrad Adamczyk (1):
      iommu/mediatek: Add PGTABLE_PA_35_EN to mt8186 platform data

Lu Baolu (13):
      iommu: Remove iommu_present()
      remoteproc: Use iommu_paging_domain_alloc()
      media: nvidia: tegra: Use iommu_paging_domain_alloc()
      drm/nouveau/tegra: Use iommu_paging_domain_alloc()
      iommu: Remove iommu_domain_alloc()
      iommu/vt-d: Add domain_alloc_paging support
      iommu/vt-d: Remove unused domain_alloc callback
      iommu/vt-d: Enhance compatibility check for paging domain attach
      iommu/vt-d: Remove domain_update_iommu_cap()
      iommu/vt-d: Remove domain_update_iommu_superpage()
      iommu/vt-d: Refactor first_level_by_default()
      iommu/vt-d: Refine intel_iommu_domain_alloc_user()
      iommu/vt-d: Drain PRQs when domain removed from RID

Matthew Rosato (1):
      iommu/s390: Implement blocking domain

Mostafa Saleh (2):
      iommu/io-pgtable-arm: Fix stage-2 map/unmap for concatenated tables
      iommu/io-pgtable-arm: Add self test for the last page in the IAS

Nicolin Chen (5):
      iommu/tegra241-cmdqv: Staticize cmdqv_debugfs_dir
      ACPICA: IORT: Update for revision E.f
      ACPI/IORT: Support CANWBS memory access flag
      iommu/arm-smmu-v3: Support IOMMU_GET_HW_INFO via struct arm_smmu_hw_info
      iommu/tegra241-cmdqv: Fix alignment failure at max_n_shift

Pratyush Brahma (1):
      iommu/arm-smmu: Defer probe of clients after smmu device bound

Qingqing Zhou (1):
      dt-bindings: arm-smmu: document QCS615 APPS SMMU

Robin Murphy (2):
      iommu/omap: Add minimal fwnode support
      iommu: Make bus_iommu_probe() static

Tomasz Jeznach (7):
      dt-bindings: iommu: riscv: Add bindings for RISC-V IOMMU
      iommu/riscv: Add RISC-V IOMMU platform device driver
      iommu/riscv: Add RISC-V IOMMU PCIe device driver
      iommu/riscv: Enable IOMMU registration and device probe.
      iommu/riscv: Device directory management.
      iommu/riscv: Command and fault queue support
      iommu/riscv: Paging domain support

Uros Bizjak (1):
      iommu/amd: Use atomic64_inc_return() in iommu.c

Vasant Hegde (20):
      iommu/amd: Do not try copy old DTE resume path
      iommu/arm-smmu-v3: Enhance domain_alloc_user() to allocate PASID capable domain
      iommu/amd: Add helper function to check GIOSUP/GTSUP
      iommu/amd: Move V2 page table support check to early_amd_iommu_init()
      iommu/amd: Separate page table setup from domain allocation
      iommu/amd: Pass page table type as param to pdom_setup_pgtable()
      iommu/amd: Enhance amd_iommu_domain_alloc_user()
      iommu/amd: Implement global identity domain
      iommu/amd/pgtbl_v2: Take protection domain lock before invalidating TLB
      iommu/amd: Use ida interface to manage protection domain ID
      iommu/amd: Remove protection_domain.dev_cnt variable
      iommu/amd: xarray to track protection_domain->iommu list
      iommu/amd: Remove unused amd_iommus variable
      iommu/amd: Do not detach devices in domain free path
      iommu/amd: Reduce domain lock scope in attach device path
      iommu/amd: Rearrange attach device code
      iommu/amd: Convert dev_data lock from spinlock to mutex
      iommu/amd: Reorder attach device code
      iommu/amd: Add ops->release_domain
      iommu/amd: Improve amd_iommu_release_device()

Will Deacon (2):
      iommu/tegra241-cmdqv: Fix unused variable warning
      Merge branch 'for-joerg/arm-smmu/bindings' into arm/smmu

Yi Liu (13):
      iommu/vt-d: Drop s1_pgtbl from dmar_domain
      iommu: Pass old domain to set_dev_pasid op
      iommu/vt-d: Add a helper to flush cache for updating present pasid entry
      iommu/vt-d: Refactor the pasid setup helpers
      iommu/vt-d: Add pasid replace helpers
      iommu/vt-d: Consolidate the struct dev_pasid_info add/remove
      iommu/vt-d: Add iommu_domain_did() to get did
      iommu/vt-d: Make intel_iommu_set_dev_pasid() to handle domain replacement
      iommu/vt-d: Limit intel_iommu_set_dev_pasid() for paging domain
      iommu/vt-d: Make intel_svm_set_dev_pasid() support domain replacement
      iommu/vt-d: Make identity_domain_set_dev_pasid() to handle domain replacement
      iommu/vt-d: Add set_dev_pasid callback for nested domain
      iommu: Make set_dev_pasid op support domain replacement

Zhenzhong Duan (2):
      iommu/vt-d: Fix checks and print in dmar_fault_dump_ptes()
      iommu/vt-d: Fix checks and print in pgtable_walk()

 .../devicetree/bindings/iommu/arm,smmu.yaml        |    5 +
 .../devicetree/bindings/iommu/riscv,iommu.yaml     |  147 ++
 MAINTAINERS                                        |    9 +
 arch/s390/include/asm/pci.h                        |    4 +-
 arch/s390/pci/pci.c                                |    3 +
 arch/s390/pci/pci_debug.c                          |   10 +-
 drivers/acpi/arm64/iort.c                          |   13 +
 drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c |    4 +-
 drivers/iommu/Kconfig                              |   10 +
 drivers/iommu/Makefile                             |    2 +-
 drivers/iommu/amd/amd_iommu.h                      |   11 +-
 drivers/iommu/amd/amd_iommu_types.h                |   23 +-
 drivers/iommu/amd/init.c                           |   63 +-
 drivers/iommu/amd/io_pgtable.c                     |   11 +-
 drivers/iommu/amd/io_pgtable_v2.c                  |    3 +
 drivers/iommu/amd/iommu.c                          |  495 +++---
 drivers/iommu/amd/pasid.c                          |    6 +-
 drivers/iommu/arm/arm-smmu-v3/Makefile             |    1 +
 .../iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c    |   31 +
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c    |    5 +-
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c        |   97 +-
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h        |   45 +-
 drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c     |    7 +-
 drivers/iommu/arm/arm-smmu/arm-smmu.c              |   27 +-
 drivers/iommu/intel/Kconfig                        |    2 +-
 drivers/iommu/intel/Makefile                       |    2 +-
 drivers/iommu/intel/dmar.c                         |   15 +-
 drivers/iommu/intel/iommu.c                        |  576 +++----
 drivers/iommu/intel/iommu.h                        |   56 +-
 drivers/iommu/intel/irq_remapping.c                |    4 +-
 drivers/iommu/intel/nested.c                       |   53 +-
 drivers/iommu/intel/pasid.c                        |  409 +++--
 drivers/iommu/intel/pasid.h                        |   22 +-
 drivers/iommu/intel/prq.c                          |  396 +++++
 drivers/iommu/intel/svm.c                          |  433 +----
 drivers/iommu/io-pgtable-arm-v7s.c                 |  149 +-
 drivers/iommu/io-pgtable-arm.c                     |  114 +-
 drivers/iommu/iommu-sysfs.c                        |    2 +-
 drivers/iommu/iommu.c                              |  263 ++--
 drivers/iommu/iommufd/hw_pagetable.c               |    3 +-
 drivers/iommu/iommufd/vfio_compat.c                |    7 +-
 drivers/iommu/iova.c                               |    2 +-
 drivers/iommu/mtk_iommu.c                          |    2 +-
 drivers/iommu/omap-iommu.c                         |   26 +-
 drivers/iommu/riscv/Kconfig                        |   20 +
 drivers/iommu/riscv/Makefile                       |    3 +
 drivers/iommu/riscv/iommu-bits.h                   |  784 +++++++++
 drivers/iommu/riscv/iommu-pci.c                    |  120 ++
 drivers/iommu/riscv/iommu-platform.c               |   92 ++
 drivers/iommu/riscv/iommu.c                        | 1661 ++++++++++++++++++++
 drivers/iommu/riscv/iommu.h                        |   88 ++
 drivers/iommu/s390-iommu.c                         |   73 +-
 drivers/media/platform/nvidia/tegra-vde/iommu.c    |    7 +-
 drivers/remoteproc/remoteproc_core.c               |    6 +-
 drivers/vfio/vfio_iommu_type1.c                    |   12 +-
 include/acpi/actbl2.h                              |    3 +-
 include/linux/dmar.h                               |    1 -
 include/linux/iommu.h                              |   30 +-
 include/uapi/linux/iommufd.h                       |   43 +
 include/uapi/linux/vfio.h                          |    2 +-
 60 files changed, 4797 insertions(+), 1716 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
 create mode 100644 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c
 create mode 100644 drivers/iommu/intel/prq.c
 create mode 100644 drivers/iommu/riscv/Kconfig
 create mode 100644 drivers/iommu/riscv/Makefile
 create mode 100644 drivers/iommu/riscv/iommu-bits.h
 create mode 100644 drivers/iommu/riscv/iommu-pci.c
 create mode 100644 drivers/iommu/riscv/iommu-platform.c
 create mode 100644 drivers/iommu/riscv/iommu.c
 create mode 100644 drivers/iommu/riscv/iommu.h

Please pull.

Thanks,

	Joerg

Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ