[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZugDc8ryLmadGXyp@8bytes.org>
Date: Mon, 16 Sep 2024 12:07:47 +0200
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.12
Hi Linus,
The following changes since commit da3ea35007d0af457a0afc87e84fddaebc4e0b63:
Linux 6.11-rc7 (2024-09-08 14:50:28 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git tags/iommu-updates-v6.12
for you to fetch changes up to 97162f6093d263aa1c2c7e883912f922ea633512:
Merge branches 'fixes', 'arm/smmu', 'intel/vt-d', 'amd/amd-vi' and 'core' into next (2024-09-13 12:53:05 +0200)
----------------------------------------------------------------
IOMMU Updates for Linux v6.12
Including:
- Core changes:
- Allow ATS on VF when parent device is identity mapped.
- Optimize unmap path on ARM io-pagetable implementation.
- Use of_property_present().
- ARM-SMMU changes:
- SMMUv2:
- Devicetree binding updates for Qualcomm MMU-500 implementations.
- Extend workarounds for broken Qualcomm hypervisor to avoid
touching features that are not available (e.g. 16KiB page
support, reserved context banks).
- SMMUv3:
- Support for NVIDIA's custom virtual command queue hardware.
- Fix Stage-2 stall configuration and extend tests to cover this
area.
- A bunch of driver cleanups, including simplification of the
master rbtree code.
- Plus minor cleanups and fixes across both drivers.
- Intel VT-d changes:
- Retire si_domain and convert to use static identity domain.
- Batched IOTLB/dev-IOTLB invalidation.
- Small code refactoring and cleanups.
- AMD-Vi changes:
- Cleanup and refactoring of io-pagetable code.
- Add parameter to limit the used io-pagesizes.
- Other cleanups and fixes.
----------------------------------------------------------------
Ashish Mhetre (1):
iommu/io-pgtable-arm: Optimise non-coherent unmap
Dan Carpenter (2):
iommu/arm-smmu-v3: Fix a NULL vs IS_ERR() check
iommu/tegra241-cmdqv: Fix ioremap() error handling in probe()
Dmitry Baryshkov (1):
iommu/arm-smmu-qcom: apply num_context_bank fixes for SDM630 / SDM660
Eliav Bar-ilan (1):
iommu/amd: Fix argument order in amd_iommu_dev_flush_pasid_all()
Jason Gunthorpe (26):
iommu: Allow ATS to work on VFs when the PF uses IDENTITY
iommu/arm-smmu-v3: Add struct arm_smmu_impl_ops
iommu/amd: Move allocation of the top table into v1_alloc_pgtable
iommu/amd: Allocate the page table root using GFP_KERNEL
iommu/amd: Set the pgsize_bitmap correctly
iommu/amd: Remove amd_iommu_domain_update() from page table freeing
iommu/amd: Remove the amd_iommu_domain_set_pt_root() and related
iommu/amd: Rename struct amd_io_pgtable iopt to pgtbl
iommu/amd: Remove amd_io_pgtable::pgtbl_cfg
iommu/amd: Store the nid in io_pgtable_cfg instead of the domain
iommu/amd: Narrow the use of struct protection_domain to invalidation
iommu/amd: Remove conditions from domain free paths
iommu/amd: Fix typo of , instead of ;
iommu/amd: Remove the confusing dummy iommu_flush_ops tlb ops
iommu/amd: Correct the reported page sizes from the V1 table
iommu/amd: Do not set the D bit on AMD v2 table entries
iommu/arm-smmu-v3: Use the new rb tree helpers
iommu/arm-smmu-v3: Add arm_smmu_strtab_l1/2_idx()
iommu/arm-smmu-v3: Add types for each level of the 2 level stream table
iommu/arm-smmu-v3: Reorganize struct arm_smmu_strtab_cfg
iommu/arm-smmu-v3: Remove strtab_base/cfg
iommu/arm-smmu-v3: Do not use devm for the cd table allocations
iommu/arm-smmu-v3: Shrink the cdtab l1_desc array
iommu/arm-smmu-v3: Add types for each level of the CD table
iommu/arm-smmu-v3: Reorganize struct arm_smmu_ctx_desc_cfg
iommu/amd: Test for PAGING domains before freeing a domain
Joerg Roedel (2):
iommu/amd: Add kernel parameters to limit V1 page-sizes
Merge branches 'fixes', 'arm/smmu', 'intel/vt-d', 'amd/amd-vi' and 'core' into next
Konrad Dybcio (1):
iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages
Lu Baolu (10):
iommu/vt-d: Require DMA domain if hardware not support passthrough
iommu/vt-d: Remove identity mappings from si_domain
iommu/vt-d: Always reserve a domain ID for identity setup
iommu/vt-d: Remove has_iotlb_device flag
iommu/vt-d: Factor out helpers from domain_context_mapping_one()
iommu/vt-d: Add support for static identity domain
iommu/vt-d: Cleanup si_domain
iommu/vt-d: Move PCI PASID enablement to probe path
iommu/vt-d: Unconditionally flush device TLB for pasid table updates
iommu/vt-d: Add qi_batch for dmar_domain
Marc Gonzalez (1):
iommu/arm-smmu-qcom: hide last LPASS SMMU context bank from linux
Mostafa Saleh (2):
iommu/arm-smmu-v3: Match Stall behaviour for S2
iommu/arm-smmu-v3-test: Test masters with stall enabled
Nate Watterson (1):
iommu/arm-smmu-v3: Add in-kernel support for NVIDIA Tegra241 (Grace) CMDQV
Nicolin Chen (11):
iommu/arm-smmu-v3: Issue a batch of commands to the same cmdq
iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_build_sync_cmd
iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_init
iommu/arm-smmu-v3: Make symbols public for CONFIG_TEGRA241_CMDQV
iommu/arm-smmu-v3: Add ARM_SMMU_OPT_TEGRA241_CMDQV
iommu/arm-smmu-v3: Add acpi_smmu_iort_probe_model for impl
iommu/arm-smmu-v3: Start a new batch if new command is not supported
iommu/tegra241-cmdqv: Limit CMDs for VCMDQs of a guest owned VINTF
iommu/tegra241-cmdqv: Fix -Wformat-truncation warnings in lvcmdq_error_header
iommu/tegra241-cmdqv: Drop static at local variable
iommu/tegra241-cmdqv: Do not allocate vcmdq until dma_set_mask_and_coherent
Nikunj Kela (1):
dt-bindings: arm-smmu: document the support on SA8255p
Rob Clark (1):
iommu/arm-smmu: Un-demote unhandled-fault msg
Rob Herring (Arm) (1):
iommu: Use of_property_present()
Sanjay K Kumar (1):
iommu/vt-d: Fix potential lockup if qi_submit_sync called with 0 count
Suravee Suthikulpanit (1):
iommu/amd: Update PASID, GATS, GLX, SNPAVICSUP feature related macros
Tina Zhang (3):
iommu/vt-d: Factor out invalidation descriptor composition
iommu/vt-d: Refactor IOTLB and Dev-IOTLB flush for batching
iommu/vt-d: Introduce batched cache invalidation
Vasant Hegde (9):
iommu/amd: Add blocked domain support
iommu/amd: Update event log pointer as soon as processing is complete
iommu/amd: Make amd_iommu_is_attach_deferred() static
iommu/amd: Remove unused DTE_GCR3_INDEX_* macros
iommu/amd: Handle error path in amd_iommu_probe_device()
iommu/amd: Make amd_iommu_dev_flush_pasid_all() static
iommu/amd: Make amd_iommu_domain_flush_complete() static
iommu/amd: Rework amd_iommu_update_and_flush_device_table()
iommu/amd: Make amd_iommu_dev_update_dte() static
Will Deacon (1):
Merge branch 'for-joerg/arm-smmu/bindings' into for-joerg/arm-smmu/updates
Zhang Zekun (1):
iommu/arm-smmu-v3: Remove the unused empty definition
Zhenhua Huang (1):
dt-bindings: arm-smmu: Add compatible for QCS8300 SoC
Documentation/admin-guide/kernel-parameters.txt | 17 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 5 +
MAINTAINERS | 1 +
drivers/iommu/Kconfig | 11 +
drivers/iommu/amd/amd_iommu.h | 26 +-
drivers/iommu/amd/amd_iommu_types.h | 35 +-
drivers/iommu/amd/init.c | 16 +-
drivers/iommu/amd/io_pgtable.c | 105 +--
drivers/iommu/amd/io_pgtable_v2.c | 56 +-
drivers/iommu/amd/iommu.c | 210 +++--
drivers/iommu/amd/pasid.c | 2 +-
drivers/iommu/arm/arm-smmu-v3/Makefile | 1 +
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c | 83 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 578 +++++++------
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 135 ++-
drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c | 909 +++++++++++++++++++++
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 28 +
drivers/iommu/arm/arm-smmu/arm-smmu.c | 2 +-
drivers/iommu/fsl_pamu_domain.c | 4 +-
drivers/iommu/intel/cache.c | 239 ++++--
drivers/iommu/intel/dmar.c | 109 +--
drivers/iommu/intel/iommu.c | 504 +++++-------
drivers/iommu/intel/iommu.h | 128 ++-
drivers/iommu/intel/nested.c | 3 +-
drivers/iommu/intel/pasid.c | 12 +-
drivers/iommu/intel/svm.c | 7 +-
drivers/iommu/io-pgtable-arm.c | 31 +-
drivers/iommu/of_iommu.c | 2 +-
drivers/pci/ats.c | 33 +
include/linux/io-pgtable.h | 4 +
include/linux/pci-ats.h | 3 +
31 files changed, 2259 insertions(+), 1040 deletions(-)
create mode 100644 drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
Please pull.
Thanks,
Joerg
Powered by blists - more mailing lists