[git pull] IOMMU Updates for Linux v6.2

From: Joerg Roedel
Date: Sat Dec 17 2022 - 09:48:35 EST


Hi Linus,

The following changes since commit 830b3c68c1fb1e9176028d02ef86f3cf76aa2476:

Linux 6.1 (2022-12-11 14:15:18 -0800)

are available in the Git repository at:

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

for you to fetch changes up to e3eca2e4f6489ed3143c80ce90bfa7ef7e12ebc7:

Merge branches 'arm/allwinner', 'arm/exynos', 'arm/mediatek', 'arm/rockchip', 'arm/smmu', 'ppc/pamu', 's390', 'x86/vt-d', 'x86/amd' and 'core' into next (2022-12-12 12:50:53 +0100)

----------------------------------------------------------------
IOMMU Updates for Linux v6.2

Including:

- Core code:
- map/unmap_pages() cleanup
- SVA and IOPF refactoring
- Clean up and document return codes from device/domain
attachment code

- AMD driver:
- Rework and extend parsing code for ivrs_ioapic, ivrs_hpet
and ivrs_acpihid command line options
- Some smaller cleanups

- Intel driver:
- Blocking domain support
- Cleanups

- S390 driver:
- Fixes and improvements for attach and aperture handling

- PAMU driver:
- Resource leak fix and cleanup

- Rockchip driver:
- Page table permission bit fix

- Mediatek driver:
- Improve safety from invalid dts input
- Smaller fixes and improvements

- Exynos driver:
- Fix driver initialization sequence

- Sun50i driver:
- Remove IOMMU_DOMAIN_IDENTITY as it has not been working
forever
- Various other fixes

----------------------------------------------------------------
Adam Skladowski (2):
dt-bindings: arm-smmu: Add compatible for Qualcomm SM6115
iommu/arm-smmu-qcom: Add SM6115 support

Chen Lin (1):
iommu/arm-smmu: Warn once when the perfetcher errata patch fails to apply

Christophe Leroy (1):
iommu/fsl_pamu: Replace NO_IRQ by 0

Colin Ian King (1):
iommu/amd: Remove variable cnt ind iommu_poll_ga_log()

Dan Carpenter (1):
iommu/mediatek: Fix forever loop in error handling

Denis Arefev (1):
iommu/amd: Check return value of mmu_notifier_register()

Dmitry Baryshkov (10):
dt-bindings: arm-smmu: Add missing Qualcomm SMMU compatibles
dt-bindings: arm-smmu: fix clocks/clock-names schema
dt-bindings: arm-smmu: add special case for Google Cheza platform
dt-bindings: arm-smmu: Add generic qcom,smmu-500 bindings
iommu/arm-smmu-qcom: Move implementation data into match data
iommu/arm-smmu-qcom: Move the qcom,adreno-smmu check into qcom_smmu_create
iommu/arm-smmu-qcom: provide separate implementation for SDM845-smmu-500
iommu/arm-smmu-qcom: Merge table from arm-smmu-qcom-debug into match data
iommu/arm-smmu-qcom: Stop using mmu500 reset for v2 MMUs
iommu/arm-smmu-qcom: Add generic qcom,smmu-500 match entry

Fabien Parent (3):
dt-bindings: iommu: mediatek: add binding documentation for MT8365 SoC
iommu/mediatek: add support for 6-bit encoded port IDs
iommu/mediatek: add support for MT8365 SoC

Guenter Roeck (1):
iommu/mediatek: Validate number of phandles associated with "mediatek,larbs"

Jason Gunthorpe (1):
iommu/sun50i: Remove IOMMU_DOMAIN_IDENTITY

Jernej Skrabec (5):
iommu/sun50i: Fix reset release
iommu/sun50i: Consider all fault sources for reset
iommu/sun50i: Fix R/W permission check
iommu/sun50i: Fix flush size
iommu/sun50i: Implement .iotlb_sync_map

Joerg Roedel (3):
Merge tag 'for-joerg' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd into core
Merge tag 'arm-smmu-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu
Merge branches 'arm/allwinner', 'arm/exynos', 'arm/mediatek', 'arm/rockchip', 'arm/smmu', 'ppc/pamu', 's390', 'x86/vt-d', 'x86/amd' and 'core' into next

Kim Phillips (2):
iommu/amd: Fix ivrs_acpihid cmdline parsing code
iommu/amd: Fix ill-formed ivrs_ioapic, ivrs_hpet and ivrs_acpihid options

Konrad Dybcio (2):
dt-bindings: arm-smmu: Add SM6350 GPU SMMUv2
iommu/arm-smmu-qcom: Add SM6350 SMMUv2

Lu Baolu (20):
iommu: Add max_pasids field in struct iommu_device
iommu: Add max_pasids field in struct dev_iommu
iommu: Remove SVM_FLAG_SUPERVISOR_MODE support
PCI: Enable PASID only when ACS RR & UF enabled on upstream path
iommu: Add attach/detach_dev_pasid iommu interfaces
iommu: Add IOMMU SVA domain support
iommu/vt-d: Add SVA domain support
arm-smmu-v3/sva: Add SVA domain support
iommu/sva: Refactoring iommu_sva_bind/unbind_device()
iommu: Remove SVA related callbacks from iommu ops
iommu: Prepare IOMMU domain for IOPF
iommu: Per-domain I/O page fault handling
iommu: Rename iommu-sva-lib.{c,h}
iommu/vt-d: Allocate pasid table in device probe path
iommu/vt-d: Add device_block_translation() helper
iommu/vt-d: Add blocking domain support
iommu/vt-d: Rename iommu_disable_dev_iotlb()
iommu/vt-d: Rename domain_add_dev_info()
iommu/vt-d: Remove unnecessary domain_context_mapped()
iommu/vt-d: Use real field for indication of first level

Marek Szyprowski (1):
iommu/exynos: Fix driver initialization sequence

Melody Olvera (2):
dt-bindings: arm-smmu: Add 'compatible' for QDU1000 and QRU1000
drivers: arm-smmu-impl: Add QDU1000 and QRU1000 iommu implementation

Michael Forney (1):
iommu/amd: Fix typo in macro parameter name

Michael Riesch (1):
iommu/rockchip: fix permission bits in page table entries v2

Nicolin Chen (5):
iommu/amd: Drop unnecessary checks in amd_iommu_attach_device()
iommu: Add return value rules to attach_dev op and APIs
iommu: Regulate EINVAL in ->attach_dev callback functions
iommu: Use EINVAL for incompatible device/domain in ->attach_dev
iommu: Propagate return value in ->attach_dev callback functions

Niklas Schnelle (11):
iommu/s390: Fix duplicate domain attachments
iommu/s390: Get rid of s390_domain_device
iommu/s390: Fix potential s390_domain aperture shrinking
iommu/s390: Fix incorrect aperture check
iommu/s390: Fix incorrect pgsize_bitmap
iommu/s390: Implement map_pages()/unmap_pages() instead of map()/unmap()
iommu/s390: Make attach succeed even if the device is in error state
iommu/s390: Add I/O TLB ops
iommu/s390: Use RCU to allow concurrent domain_list iteration
iommu/s390: Optimize IOMMU table walking
s390/pci: use lock-free I/O translation updates

Ricardo Ribalda (1):
iommu/mediatek: Fix crash on isr after kexec()

Richard Acayan (1):
dt-bindings: iommu: arm-smmu: add sdm670 compatible

Robin Murphy (10):
iommu: Avoid races around device probe
iommu/mediatek-v1: Update to {map,unmap}_pages
iommu/sprd: Update to {map,unmap}_pages
iommu/mediatek: Update to {map,unmap}_pages
iommu/msm: Update to {map,unmap}_pages
iommu/ipmmu-vmsa: Update to {map,unmap}_pages
iommu/qcom: Update to {map,unmap}_pages
iommu/io-pgtable-arm: Remove map/unmap
iommu/io-pgtable-arm-v7s: Remove map/unmap
iommu/io-pgtable: Remove map/unmap

Will Deacon (1):
Merge branch 'for-joerg/arm-smmu/bindings' into for-joerg/arm-smmu/updates

Yang Yingliang (2):
iommu/mediatek: Check return value after calling platform_get_resource()
iommu/amd: Fix pci device refcount leak in ppr_notifier()

Yong Wu (5):
iommu/mediatek: Add platform_device_put for recovering the device refcnt
iommu/mediatek: Use component_match_add
iommu/mediatek: Add error path for loop of mm_dts_parse
iommu/mediatek: Improve safety for mediatek,smi property in larb nodes
iommu/mediatek: Remove unused "mapping" member from mtk_iommu_data

Yuan Can (1):
iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe()

Documentation/admin-guide/kernel-parameters.txt | 27 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 178 +++++++++-
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 2 +
arch/s390/include/asm/pci.h | 5 +-
arch/s390/kvm/pci.c | 6 +-
arch/s390/pci/pci.c | 13 +-
arch/s390/pci/pci_dma.c | 77 +++--
drivers/dma/idxd/cdev.c | 3 +-
drivers/dma/idxd/init.c | 25 +-
drivers/iommu/Makefile | 2 +-
drivers/iommu/amd/init.c | 88 +++--
drivers/iommu/amd/iommu.c | 15 +-
drivers/iommu/amd/iommu_v2.c | 5 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 104 +++---
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 32 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 23 +-
drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 3 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 91 -----
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 157 ++++++---
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h | 21 +-
drivers/iommu/arm/arm-smmu/arm-smmu.c | 3 -
drivers/iommu/arm/arm-smmu/qcom_iommu.c | 21 +-
drivers/iommu/exynos-iommu.c | 26 +-
drivers/iommu/fsl_pamu.c | 8 +-
drivers/iommu/fsl_pamu_domain.c | 4 +-
drivers/iommu/intel/dmar.c | 7 +
drivers/iommu/intel/iommu.c | 209 ++++++------
drivers/iommu/intel/iommu.h | 33 +-
drivers/iommu/intel/pasid.c | 6 +-
drivers/iommu/intel/svm.c | 145 ++++----
drivers/iommu/io-pgfault.c | 77 +----
drivers/iommu/io-pgtable-arm-v7s.c | 41 +--
drivers/iommu/io-pgtable-arm.c | 42 +--
drivers/iommu/iommu-sva-lib.c | 71 ----
drivers/iommu/iommu-sva.c | 240 +++++++++++++
drivers/iommu/{iommu-sva-lib.h => iommu-sva.h} | 14 +-
drivers/iommu/iommu.c | 329 ++++++++++++------
drivers/iommu/ipmmu-vmsa.c | 20 +-
drivers/iommu/msm_iommu.c | 18 +-
drivers/iommu/mtk_iommu.c | 153 ++++++---
drivers/iommu/mtk_iommu_v1.c | 30 +-
drivers/iommu/omap-iommu.c | 6 +-
drivers/iommu/rockchip-iommu.c | 10 +-
drivers/iommu/s390-iommu.c | 377 ++++++++++++---------
drivers/iommu/sprd-iommu.c | 29 +-
drivers/iommu/sun50i-iommu.c | 89 ++++-
drivers/iommu/tegra-gart.c | 2 +-
drivers/iommu/virtio-iommu.c | 7 +-
drivers/misc/uacce/uacce.c | 2 +-
drivers/pci/ats.c | 3 +
.../dt-bindings/memory/mediatek,mt8365-larb-port.h | 90 +++++
include/linux/intel-svm.h | 13 -
include/linux/io-pgtable.h | 6 -
include/linux/iommu.h | 128 +++++--
54 files changed, 1964 insertions(+), 1172 deletions(-)
delete mode 100644 drivers/iommu/iommu-sva-lib.c
create mode 100644 drivers/iommu/iommu-sva.c
rename drivers/iommu/{iommu-sva-lib.h => iommu-sva.h} (83%)
create mode 100644 include/dt-bindings/memory/mediatek,mt8365-larb-port.h

Please pull.

Thanks,

Joerg

Attachment: signature.asc
Description: Digital signature