[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200608160502.GA4491@8bytes.org>
Date: Mon, 8 Jun 2020 18:05:07 +0200
From: Joerg Roedel <joro@...tes.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org, iommu@...ts.linux-foundation.org
Subject: [git pull] IOMMU Updates for Linux v5.8
Hi Linus,
The following changes since commit 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162:
Linux 5.7 (2020-05-31 16:49:15 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v5.8
for you to fetch changes up to 431275afdc7155415254aef4bd3816a1b8a2ead0:
iommu: Check for deferred attach in iommu_group_do_dma_attach() (2020-06-04 11:38:17 +0200)
----------------------------------------------------------------
IOMMU Updates for Linux v5.8
Including:
- A big part of this is a change in how devices get connected to
IOMMUs in the core code. It contains the change from the old
add_device()/remove_device() to the new
probe_device()/release_device() call-backs. As a result
functionality that was previously in the IOMMU drivers has
been moved to the IOMMU core code, including IOMMU group
allocation for each device.
The reason for this change was to get more robust allocation
of default domains for the iommu groups.
A couple of fixes were necessary after this was merged into
the IOMMU tree, but there are no known bugs left. The last fix
is applied on-top of the merge commit for the topic branches.
- Removal of the driver private domain handling in the Intel
VT-d driver. This was fragile code and I am glad it is gone
now.
- More Intel VT-d updates from Lu Baolu:
- Nested Shared Virtual Addressing (SVA) support to the
Intel VT-d driver
- Replacement of the Intel SVM interfaces to the common
IOMMU SVA API
- SVA Page Request draining support
- ARM-SMMU Updates from Will:
- Avoid mapping reserved MMIO space on SMMUv3, so that
it can be claimed by the PMU driver
- Use xarray to manage ASIDs on SMMUv3
- Reword confusing shutdown message
- DT compatible string updates
- Allow implementations to override the default domain
type
- A new IOMMU driver for the Allwinner Sun50i platform
- Support for ATS gets disabled for untrusted devices (like
Thunderbolt devices). This includes a PCI patch, acked by
Bjorn.
- Some cleanups to the AMD IOMMU driver to make more use of
IOMMU core features.
- Unification of some printk formats in the Intel and AMD IOMMU
drivers and in the IOVA code.
- Updates for DT bindings
- A number of smaller fixes and cleanups.
----------------------------------------------------------------
Andre Przywara (1):
dt-bindings: arm-smmu: Allow mmu-400, smmu-v1 compatible
Andy Shevchenko (3):
iommu/iova: Unify format of the printed messages
iommu/vt-d: Unify format of the printed messages
iommu/amd: Unify format of the printed messages
Arnd Bergmann (1):
iommu/renesas: Fix unused-function warning
Chen Zhou (1):
iommu/arm-smmu-v3: remove set but not used variable 'smmu'
Jacob Pan (10):
iommu/vt-d: Move domain helper to header
iommu/vt-d: Use a helper function to skip agaw for SL
iommu/vt-d: Add nested translation helper function
iommu/vt-d: Add bind guest PASID support
iommu/vt-d: Support flushing more translation cache types
iommu/vt-d: Add svm/sva invalidate function
iommu/vt-d: Add custom allocator for IOASID
iommu/vt-d: Report SVA feature with generic flag
iommu/vt-d: Replace intel SVM APIs with generic SVA APIs
iommu/vt-d: Fix compile warning
Jean-Philippe Brucker (8):
iommu/arm-smmu-v3: Don't reserve implementation defined register space
iommu/arm-smmu-v3: Manage ASIDs with xarray
PCI/ATS: Only enable ATS for trusted devices
iommu/amd: Use pci_ats_supported()
iommu/arm-smmu-v3: Use pci_ats_supported()
iommu/vt-d: Use pci_ats_supported()
uacce: Remove mm_exit() op
iommu: Remove iommu_sva_ops::mm_exit()
Joerg Roedel (50):
iommu: Move default domain allocation to separate function
iommu/amd: Implement iommu_ops->def_domain_type call-back
iommu/vt-d: Wire up iommu_ops->def_domain_type
iommu/amd: Remove dma_mask check from check_device()
iommu/amd: Return -ENODEV in add_device when device is not handled by IOMMU
iommu: Add probe_device() and release_device() call-backs
iommu: Move default domain allocation to iommu_probe_device()
iommu: Keep a list of allocated groups in __iommu_probe_device()
iommu: Move new probe_device path to separate function
iommu: Split off default domain allocation from group assignment
iommu: Move iommu_group_create_direct_mappings() out of iommu_group_add_device()
iommu: Export bus_iommu_probe() and make is safe for re-probing
iommu/amd: Remove dev_data->passthrough
iommu/amd: Convert to probe/release_device() call-backs
iommu/vt-d: Convert to probe/release_device() call-backs
iommu/arm-smmu: Convert to probe/release_device() call-backs
iommu/pamu: Convert to probe/release_device() call-backs
iommu/s390: Convert to probe/release_device() call-backs
iommu/virtio: Convert to probe/release_device() call-backs
iommu/msm: Convert to probe/release_device() call-backs
iommu/mediatek: Convert to probe/release_device() call-backs
iommu/mediatek-v1 Convert to probe/release_device() call-backs
iommu/qcom: Convert to probe/release_device() call-backs
iommu/rockchip: Convert to probe/release_device() call-backs
iommu/tegra: Convert to probe/release_device() call-backs
iommu/renesas: Convert to probe/release_device() call-backs
iommu/omap: Remove orphan_dev tracking
iommu/omap: Convert to probe/release_device() call-backs
iommu/exynos: Use first SYSMMU in controllers list for IOMMU core
iommu/exynos: Convert to probe/release_device() call-backs
iommu: Remove add_device()/remove_device() code-paths
iommu: Move more initialization to __iommu_probe_device()
iommu: Unexport iommu_group_get_for_dev()
Merge tag 'v5.7-rc4' into core
iommu/sun50i: Fix compile warnings
iommu/sun50i: Use __GFP_ZERO instead of memset()
iommu: Don't call .probe_finalize() under group->mutex
iommu: Don't take group reference in iommu_alloc_default_domain()
Merge tag 'v5.7-rc7' into x86/amd
iommu/amd: Unexport get_dev_data()
iommu/amd: Let free_pagetable() not rely on domain->pt_root
iommu/amd: Allocate page-table in protection_domain_init()
iommu/amd: Free page-table in protection_domain_free()
iommu/amd: Consolidate domain allocation/freeing
iommu/amd: Remove PD_DMA_OPS_MASK
iommu/amd: Merge private header files
iommu/amd: Store dev_data as device iommu private data
iommu/amd: Remove redundant devid checks
Merge branches 'arm/msm', 'arm/allwinner', 'arm/smmu', 'x86/vt-d', 'hyper-v', 'core' and 'x86/amd' into next
iommu: Check for deferred attach in iommu_group_do_dma_attach()
Jon Derrick (3):
iommu/vt-d: Only clear real DMA device's context entries
iommu/vt-d: Allocate domain info for real DMA sub-devices
iommu/vt-d: Remove real DMA lookup in find_domain
Jordan Crouse (1):
iommu/arm-smmu: Allow client devices to select direct mapping
Lu Baolu (12):
iommu/vt-d: Allow 32bit devices to uses DMA domain
iommu/vt-d: Allow PCI sub-hierarchy to use DMA domain
iommu/vt-d: Apply per-device dma_ops
iommu/vt-d: Enlightened PASID allocation
iommu/vt-d: Add get_domain_info() helper
iommu/vt-d: Multiple descriptors per qi_submit_sync()
iommu/vt-d: debugfs: Add support to show inv queue internals
iommu/vt-d: Disable non-recoverable fault processing before unbind
iommu/vt-d: Add page request draining support
iommu/vt-d: Remove redundant IOTLB flush
iommu/vt-d: Remove duplicated check in intel_svm_bind_mm()
iommu/vt-d: Fix pointer cast warnings on 32 bit
Maxime Ripard (2):
dt-bindings: iommu: Add Allwinner H6 IOMMU bindings
iommu: Add Allwinner H6 IOMMU driver
Qian Cai (2):
iommu/amd: Fix variable "iommu" set but not used
iommu/vt-d: fix a GCC warning
Rikard Falkeborn (2):
iommu/hyper-v: Constify hyperv_ir_domain_ops
iommu/sun50i: Constify sun50i_iommu_ops
Sai Prakash Ranjan (3):
iommu/arm-smmu: Make remove callback message more informative
iommu: arm-smmu-impl: Convert to a generic reset implementation
iommu/arm-smmu: Implement iommu_ops->def_domain_type call-back
Sai Praneeth Prakhya (2):
iommu: Add def_domain_type() callback in iommu_ops
iommu: Remove functions that support private domain
Samuel Zou (1):
iommu/msm: Make msm_iommu_lock static
Sibi Sankar (3):
dt-bindings: remoteproc: qcom: Add iommus property
arm64: dts: qcom: sdm845-cheza: Add iommus property
iommu/arm-smmu-qcom: Request direct mapping for modem device
Tero Kristo via iommu (2):
iommu/omap: Add check for iommu group when no IOMMU in use
iommu/omap: Add registration for DT fwnode pointer
Thierry Reding (1):
iommu: Do not probe devices on IOMMU-less busses
Tom Murphy (1):
iommu/vt-d: Remove IOVA handling code from the non-dma_ops path
Wei Yongjun (1):
iommu/sun50i: Fix return value check in sun50i_iommu_probe()
Yong Wu (2):
iommu/mediatek-v1: Add def_domain_type
iommu/mediatek-v1: Fix a build warning for a unused variable 'data'
.../bindings/iommu/allwinner,sun50i-h6-iommu.yaml | 61 ++
.../devicetree/bindings/iommu/arm,smmu.yaml | 4 +-
.../devicetree/bindings/remoteproc/qcom,q6v5.txt | 3 +
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 5 +
drivers/iommu/Kconfig | 9 +
drivers/iommu/Makefile | 1 +
drivers/iommu/amd_iommu.c | 369 +++----
drivers/iommu/amd_iommu.h | 96 +-
drivers/iommu/amd_iommu_debugfs.c | 5 +-
drivers/iommu/amd_iommu_init.c | 4 +-
drivers/iommu/amd_iommu_proto.h | 96 --
drivers/iommu/amd_iommu_types.h | 9 +-
drivers/iommu/amd_iommu_v2.c | 14 +-
drivers/iommu/arm-smmu-impl.c | 8 +-
drivers/iommu/arm-smmu-qcom.c | 37 +-
drivers/iommu/arm-smmu-v3.c | 122 +--
drivers/iommu/arm-smmu.c | 53 +-
drivers/iommu/arm-smmu.h | 1 +
drivers/iommu/dmar.c | 99 +-
drivers/iommu/exynos-iommu.c | 24 +-
drivers/iommu/fsl_pamu_domain.c | 22 +-
drivers/iommu/hyperv-iommu.c | 2 +-
drivers/iommu/intel-iommu-debugfs.c | 62 ++
drivers/iommu/intel-iommu.c | 952 ++++++++----------
drivers/iommu/intel-pasid.c | 309 +++++-
drivers/iommu/intel-pasid.h | 27 +-
drivers/iommu/intel-svm.c | 448 +++++++--
drivers/iommu/intel_irq_remapping.c | 2 +-
drivers/iommu/iommu.c | 470 ++++++---
drivers/iommu/iova.c | 6 +-
drivers/iommu/ipmmu-vmsa.c | 59 +-
drivers/iommu/msm_iommu.c | 36 +-
drivers/iommu/mtk_iommu.c | 24 +-
drivers/iommu/mtk_iommu_v1.c | 68 +-
drivers/iommu/omap-iommu.c | 103 +-
drivers/iommu/qcom_iommu.c | 24 +-
drivers/iommu/rockchip-iommu.c | 26 +-
drivers/iommu/s390-iommu.c | 22 +-
drivers/iommu/sun50i-iommu.c | 1023 ++++++++++++++++++++
drivers/iommu/tegra-gart.c | 24 +-
drivers/iommu/tegra-smmu.c | 31 +-
drivers/iommu/virtio-iommu.c | 41 +-
drivers/misc/uacce/uacce.c | 172 +---
drivers/pci/ats.c | 18 +-
include/linux/intel-iommu.h | 82 +-
include/linux/intel-svm.h | 94 +-
include/linux/iommu.h | 63 +-
include/linux/pci-ats.h | 3 +
include/linux/uacce.h | 34 +-
include/uapi/linux/iommu.h | 5 +
50 files changed, 3345 insertions(+), 1927 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iommu/allwinner,sun50i-h6-iommu.yaml
delete mode 100644 drivers/iommu/amd_iommu_proto.h
create mode 100644 drivers/iommu/sun50i-iommu.c
Please pull.
Thanks,
Joerg
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists