IOMMU Archive mirror
 help / color / mirror / Atom feed
From: Joerg Roedel <joro@8bytes.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Will Deacon <will@kernel.org>,
	linux-kernel@vger.kernel.org, iommu@lists.linux.dev
Subject: [git pull] IOMMU Updates for Linux v6.10
Date: Fri, 17 May 2024 11:57:34 +0200	[thread overview]
Message-ID: <ZkcqDrFmd4ZHv7Qf@8bytes.org> (raw)

Hi Linus,

There is a small and easy to resolve conflict with these changes in
drivers/acpi/scan.c. Please take the version that comes from the iommu
tree.  With this being said:

The following changes since commit a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6:

  Linux 6.9 (2024-05-12 14:12:29 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 2bd5059c6cc04b02073d4d9f57137ab74e1d8e7a:

  Merge branches 'arm/renesas', 'arm/smmu', 'x86/amd', 'core' and 'x86/vt-d' into next (2024-05-13 14:06:54 +0200)

----------------------------------------------------------------
IOMMU Updates for Linux v6.10

Including:

	- Core:
	  - IOMMU memory usage observability - This will make the memory used
	    for IO page tables explicitly visible.
	  - Simplify arch_setup_dma_ops()

	- Intel VT-d:
	  - Consolidate domain cache invalidation
	  - Remove private data from page fault message
	  - Allocate DMAR fault interrupts locally
	  - Cleanup and refactoring

	- ARM-SMMUv2:
	  - Support for fault debugging hardware on Qualcomm implementations
	  - Re-land support for the ->domain_alloc_paging() callback

	- ARM-SMMUv3:
	  - Improve handling of MSI allocation failure
	  - Drop support for the "disable_bypass" cmdline option
	  - Major rework of the CD creation code, following on directly from the
	    STE rework merged last time around.
	  - Add unit tests for the new STE/CD manipulation logic

	- AMD-Vi:
	  - Final part of SVA changes with generic IO page fault handling

	- Renesas IPMMU:
	  - Add support for R8A779H0 hardware

	- A couple smaller fixes and updates across the sub-tree

----------------------------------------------------------------
Aleksandr Aprelkov (1):
      iommu/arm-smmu-v3: Free MSIs in case of ENOMEM

Andy Shevchenko (1):
      iommu/amd: Fix compilation error

Colin Ian King (1):
      iommu/vt-d: Remove redundant assignment to variable err

Dimitri Sivanich (1):
      iommu/vt-d: Allocate DMAR fault interrupts locally

Georgi Djakov (5):
      dt-bindings: iommu: Add Qualcomm TBU
      iommu/arm-smmu-qcom-debug: Add support for TBUs
      iommu/arm-smmu: Allow using a threaded handler for context interrupts
      iommu/arm-smmu-qcom: Use a custom context fault handler for sdm845
      iommu/arm-smmu-qcom: Use the custom fault handler on more platforms

Jason Gunthorpe (16):
      iommu/arm-smmu-v3: Do not allow a SVA domain to be set on the wrong PASID
      iommu/arm-smmu-v3: Do not ATC invalidate the entire domain
      iommu/arm-smmu-v3: Add a type for the CD entry
      iommu/arm-smmu: Convert to domain_alloc_paging()
      iommu: Add ops->domain_alloc_sva()
      iommu: Add ops->domain_alloc_sva()
      iommu/arm-smmu-v3: Add an ops indirection to the STE code
      iommu/arm-smmu-v3: Make CD programming use arm_smmu_write_entry()
      iommu/arm-smmu-v3: Move the CD generation for S1 domains into a function
      iommu/arm-smmu-v3: Consolidate clearing a CD table entry
      iommu/arm-smmu-v3: Make arm_smmu_alloc_cd_ptr()
      iommu/arm-smmu-v3: Allocate the CD table entry in advance
      iommu/arm-smmu-v3: Move the CD generation for SVA into a function
      iommu/arm-smmu-v3: Build the whole CD in arm_smmu_make_s1_cd()
      iommu/arm-smmu-v3: Add unit tests for arm_smmu_write_entry
      iommu/arm-smmu-v3: Make the kunit into a module

Jingqi Liu (2):
      iommu/vt-d: Remove debugfs use of private data field
      iommu/vt-d: Remove private data use in fault message

Joerg Roedel (4):
      Merge branch 'iommu/fixes' into x86/amd
      Merge branch 'memory-observability' into x86/amd
      Merge tag 'arm-smmu-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu
      Merge branches 'arm/renesas', 'arm/smmu', 'x86/amd', 'core' and 'x86/vt-d' into next

Lu Baolu (13):
      iommu/vt-d: Remove caching mode check before device TLB flush
      iommu/vt-d: Add cache tag assignment interface
      iommu/vt-d: Add cache tag invalidation helpers
      iommu/vt-d: Add trace events for cache tag interface
      iommu/vt-d: Use cache_tag_flush_all() in flush_iotlb_all
      iommu/vt-d: Use cache_tag_flush_range() in tlb_sync
      iommu/vt-d: Use cache_tag_flush_range_np() in iotlb_sync_map
      iommu/vt-d: Cleanup use of iommu_flush_iotlb_psi()
      iommu/vt-d: Use cache_tag_flush_range() in cache_invalidate_user
      iommu/vt-d: Use cache helpers in arch_invalidate_secondary_tlbs
      iommu/vt-d: Remove intel_svm_dev
      iommu/vt-d: Remove struct intel_svm
      iommu/vt-d: Decouple igfx_off from graphic identity mapping

Pasha Tatashin (11):
      iommu/vt-d: add wrapper functions for page allocations
      iommu/dma: use iommu_put_pages_list() to releae freelist
      iommu/amd: use page allocation function provided by iommu-pages.h
      iommu/io-pgtable-arm: use page allocation function provided by iommu-pages.h
      iommu/io-pgtable-dart: use page allocation function provided by iommu-pages.h
      iommu/exynos: use page allocation function provided by iommu-pages.h
      iommu/rockchip: use page allocation function provided by iommu-pages.h
      iommu/sun50i: use page allocation function provided by iommu-pages.h
      iommu/tegra-smmu: use page allocation function provided by iommu-pages.h
      iommu: observability of the IOMMU allocations
      iommu: account IOMMU allocated memory

Robin Murphy (9):
      iommu/arm-smmu-v3: Retire disable_bypass parameter
      OF: Retire dma-ranges mask workaround
      OF: Simplify DMA range calculations
      ACPI/IORT: Handle memory address size limits as limits
      dma-mapping: Add helpers for dma_range_map bounds
      iommu/dma: Make limit checks self-contained
      iommu/dma: Centralise iommu_setup_dma_ops()
      dma-mapping: Simplify arch_setup_dma_ops()
      arm64: Properly clean up iommu-dma remnants

Suravee Suthikulpanit (3):
      iommu/amd: Move PPR-related functions into ppr.c
      iommu/amd: Define per-IOMMU iopf_queue
      iommu/amd: Add support for page response

Thanh Le (1):
      dt-bindings: iommu: renesas,ipmmu-vmsa: add r8a779h0 support

Uros Bizjak (1):
      iommu/vt-d: Use try_cmpxchg64{,_local}() in iommu.c

Vasant Hegde (10):
      iommu/amd: Rename amd_iommu_v2_supported() as amd_iommu_pasid_supported()
      iommu/amd: Introduce per device DTE update function
      iommu/amd: Fix PPR interrupt processing logic
      iommu/amd: Introduce iommu_dev_data.max_pasids
      iommu/amd: Setup GCR3 table in advance if domain is SVA capable
      iommu/amd: Enable PCI features based on attached domain capability
      iommu/amd: Add support for enable/disable IOPF
      iommu/amd: Initial SVA support for AMD IOMMU
      iommu/amd: Add SVA domain support
      iommu/amd: Enable Guest Translation after reading IOMMU feature register

Wei Huang (2):
      iommu/amd: Add support for enabling/disabling IOMMU features
      iommu/amd: Add IO page fault notifier handler

Will Deacon (1):
      iommu/arm-smmu-qcom: Don't build debug features as a kernel module

Yi Liu (2):
      iommu: Undo pasid attachment only for the devices that have succeeded
      iommu: Pass domain to remove_dev_pasid() op

 Documentation/admin-guide/cgroup-v2.rst            |   2 +-
 .../devicetree/bindings/iommu/qcom,tbu.yaml        |  69 +++
 .../bindings/iommu/renesas,ipmmu-vmsa.yaml         |   1 +
 Documentation/filesystems/proc.rst                 |   4 +-
 arch/arc/mm/dma.c                                  |   3 +-
 arch/arm/mm/dma-mapping-nommu.c                    |   3 +-
 arch/arm/mm/dma-mapping.c                          |  16 +-
 arch/arm64/Kconfig                                 |   1 -
 arch/arm64/mm/dma-mapping.c                        |  13 +-
 arch/loongarch/kernel/dma.c                        |   9 +-
 arch/mips/mm/dma-noncoherent.c                     |   3 +-
 arch/riscv/mm/dma-noncoherent.c                    |   3 +-
 drivers/acpi/arm64/dma.c                           |  17 +-
 drivers/acpi/arm64/iort.c                          |  20 +-
 drivers/acpi/scan.c                                |   7 +-
 drivers/hv/hv_common.c                             |   6 +-
 drivers/iommu/Kconfig                              |  25 +-
 drivers/iommu/amd/Kconfig                          |   3 +
 drivers/iommu/amd/Makefile                         |   2 +-
 drivers/iommu/amd/amd_iommu.h                      |  60 ++-
 drivers/iommu/amd/amd_iommu_types.h                |  33 ++
 drivers/iommu/amd/init.c                           | 177 +++----
 drivers/iommu/amd/io_pgtable.c                     |  13 +-
 drivers/iommu/amd/io_pgtable_v2.c                  |  18 +-
 drivers/iommu/amd/iommu.c                          | 302 +++++++----
 drivers/iommu/amd/pasid.c                          | 198 +++++++
 drivers/iommu/amd/ppr.c                            | 288 +++++++++++
 drivers/iommu/arm/arm-smmu-v3/Makefile             |   2 +
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c    | 168 ++++--
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c   | 468 +++++++++++++++++
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c        | 568 +++++++++++----------
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h        |  60 ++-
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c   | 496 ++++++++++++++++++
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c         |   8 +
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h         |   2 +
 drivers/iommu/arm/arm-smmu/arm-smmu.c              |  20 +-
 drivers/iommu/arm/arm-smmu/arm-smmu.h              |   3 +
 drivers/iommu/dma-iommu.c                          |  46 +-
 drivers/iommu/dma-iommu.h                          |  14 +-
 drivers/iommu/exynos-iommu.c                       |  14 +-
 drivers/iommu/intel/Makefile                       |   2 +-
 drivers/iommu/intel/cache.c                        | 419 +++++++++++++++
 drivers/iommu/intel/debugfs.c                      |   7 -
 drivers/iommu/intel/dmar.c                         |  26 +-
 drivers/iommu/intel/iommu.c                        | 383 +++-----------
 drivers/iommu/intel/iommu.h                        |  88 +++-
 drivers/iommu/intel/irq_remapping.c                |  16 +-
 drivers/iommu/intel/nested.c                       |  69 +--
 drivers/iommu/intel/pasid.c                        |  18 +-
 drivers/iommu/intel/perf.h                         |   1 -
 drivers/iommu/intel/svm.c                          | 383 ++++----------
 drivers/iommu/intel/trace.h                        |  97 ++++
 drivers/iommu/io-pgtable-arm.c                     |  15 +-
 drivers/iommu/io-pgtable-dart.c                    |  37 +-
 drivers/iommu/iommu-pages.h                        | 186 +++++++
 drivers/iommu/iommu-sva.c                          |  16 +-
 drivers/iommu/iommu.c                              |  48 +-
 drivers/iommu/irq_remapping.c                      |   5 +-
 drivers/iommu/irq_remapping.h                      |   2 +-
 drivers/iommu/rockchip-iommu.c                     |  14 +-
 drivers/iommu/s390-iommu.c                         |   6 -
 drivers/iommu/sun50i-iommu.c                       |   7 +-
 drivers/iommu/tegra-smmu.c                         |  18 +-
 drivers/iommu/virtio-iommu.c                       |  10 -
 drivers/of/device.c                                |  42 +-
 include/linux/acpi_iort.h                          |   4 +-
 include/linux/dma-direct.h                         |  18 +
 include/linux/dma-map-ops.h                        |   6 +-
 include/linux/dmar.h                               |   2 +-
 include/linux/iommu.h                              |  16 +-
 include/linux/mmzone.h                             |   5 +-
 mm/vmstat.c                                        |   3 +
 72 files changed, 3536 insertions(+), 1598 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iommu/qcom,tbu.yaml
 create mode 100644 drivers/iommu/amd/pasid.c
 create mode 100644 drivers/iommu/amd/ppr.c
 create mode 100644 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c
 create mode 100644 drivers/iommu/intel/cache.c
 create mode 100644 drivers/iommu/iommu-pages.h

Please pull.

Thanks,

	Joerg

             reply	other threads:[~2024-05-17  9:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-17  9:57 Joerg Roedel [this message]
2024-05-18 18:07 ` [git pull] IOMMU Updates for Linux v6.10 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZkcqDrFmd4ZHv7Qf@8bytes.org \
    --to=joro@8bytes.org \
    --cc=iommu@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).