Messages in this thread | ![/](/images/icornerl.gif) | | Date | Fri, 17 May 2024 11:57:34 +0200 | From | Joerg Roedel <> | Subject | [git pull] IOMMU Updates for Linux v6.10 |
| |
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
| ![\](/images/icornerr.gif) |