lkml.org 
[lkml]   [2022]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[git pull] IOMMU Updates for Linux v5.20
Hi Linus,

The following changes since commit e0dccc3b76fb35bb257b4118367a883073d7390e:

Linux 5.19-rc8 (2022-07-24 13:26:27 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v5.20-or-v6.0

for you to fetch changes up to c10100a416c16b598bf5155e759307b34dac0d7d:

Merge branches 'arm/exynos', 'arm/mediatek', 'arm/msm', 'arm/smmu', 'virtio', 'x86/vt-d', 'x86/amd' and 'core' into next (2022-07-29 12:06:56 +0200)

----------------------------------------------------------------
IOMMU Updates for Linux v5.20/v6.0:

Including:

- Most intrusive patch is small and changes the default
allocation policy for DMA addresses. Before the change the
allocator tried its best to find an address in the first 4GB.
But that lead to performance problems when that space gets
exhaused, and since most devices are capable of 64-bit DMA
these days, we changed it to search in the full DMA-mask
range from the beginning. This change has the potential to
uncover bugs elsewhere, in the kernel or the hardware. There
is a Kconfig option and a command line option to restore the
old behavior, but none of them is enabled by default.

- Add Robin Murphy as reviewer of IOMMU code and maintainer for
the dma-iommu and iova code

- Chaning IOVA magazine size from 1032 to 1024 bytes to save
memory

- Some core code cleanups and dead-code removal

- Support for ACPI IORT RMR node

- Support for multiple PCI domains in the AMD-Vi driver

- ARM SMMU changes from Will Deacon:

- Add even more Qualcomm device-tree compatible strings

- Support dumping of IMP DEF Qualcomm registers on TLB sync
timeout

- Fix reference count leak on device tree node in Qualcomm
driver

- Intel VT-d driver updates from Lu Baolu:

- Make intel-iommu.h private

- Optimize the use of two locks

- Extend the driver to support large-scale platforms

- Cleanup some dead code

- MediaTek IOMMU refactoring and support for TTBR up to 35bit

- Basic support for Exynos SysMMU v7

- VirtIO IOMMU driver gets a map/unmap_pages() implementation

- Other smaller cleanups and fixes

----------------------------------------------------------------
AngeloGioacchino Del Regno (3):
dt-bindings: iommu: mediatek: Add mediatek,infracfg phandle
iommu/mediatek: Lookup phandle to retrieve syscon to infracfg
iommu/mediatek: Cleanup pericfg lookup flow

Bo Liu (1):
iommu/amd: Handle return of iommu_device_sysfs_add

Brijesh Singh (1):
iommu/amd: Introduce function to check and enable SNP

Christoph Hellwig (4):
iommu: remove the unused dev_has_feat method
iommu: remove iommu_dev_feature_enabled
iommu: remove the put_resv_regions method
iommu/arm-smmu-v3: cleanup arm_smmu_dev_{enable,disable}_feature

Emma Anholt (1):
iommu: arm-smmu-impl: Add 8250 display compatible to the client list.

Feng Tang (1):
iommu/iova: change IOVA_MAG_SIZE to 127 to save memory

Joerg Roedel (4):
MAINTAINERS: Add Robin Murphy as IOMMU SUBSYTEM reviewer
Merge tag 'arm-smmu-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu
iommu/amd: Fix compile warning in init code
Merge branches 'arm/exynos', 'arm/mediatek', 'arm/msm', 'arm/smmu', 'virtio', 'x86/vt-d', 'x86/amd' and 'core' into next

Jon Nettleton (1):
iommu/arm-smmu: Get associated RMR info and install bypass SMR

Justin Stitt (1):
drivers: iommu: fix clang -wformat warning

Ke Liu (1):
iommu: Directly use ida_alloc()/free()

Konrad Dybcio (2):
dt-bindings: arm-smmu: Add compatible for Qualcomm SM6375
iommu/arm-smmu-qcom: Add SM6375 SMMU compatible

Liang He (1):
iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop

Lu Baolu (25):
iommu/vt-d: Move trace/events/intel_iommu.h under iommu
agp/intel: Use per device iommu check
iommu/vt-d: Remove unnecessary exported symbol
drm/i915: Remove unnecessary include
KVM: x86: Remove unnecessary include
x86/boot/tboot: Move tboot_force_iommu() to Intel IOMMU
iommu/vt-d: Move include/linux/intel-iommu.h under iommu
iommu/vt-d: Remove unused iovad from dmar_domain
iommu/vt-d: debugfs: Remove device_domain_lock usage
iommu/vt-d: Remove clearing translation data in disable_dmar_iommu()
iommu/vt-d: Use pci_get_domain_bus_and_slot() in pgtable_walk()
iommu/vt-d: Unnecessary spinlock for root table alloc and free
iommu/vt-d: Replace spin_lock_irqsave() with spin_lock()
iommu/vt-d: Acquiring lock in domain ID allocation helpers
iommu/vt-d: Acquiring lock in pasid manipulation helpers
iommu/vt-d: Check device list of domain in domain free path
iommu/vt-d: Fold __dmar_remove_one_dev_info() into its caller
iommu/vt-d: Use device_domain_lock accurately
iommu/vt-d: Convert global spinlock into per domain lock
iommu/vt-d: Remove unused domain_get_iommu()
iommu/vt-d: Use IDA interface to manage iommu sequence id
iommu/vt-d: Refactor iommu information of each domain
iommu/vt-d: Remove unnecessary check in intel_iommu_add()
iommu/vt-d: Remove global g_iommus array
iommu/vt-d: Make DMAR_UNITS_SUPPORTED default 1024

Marek Szyprowski (1):
iommu/exynos: Make driver independent of the system page size

Nícolas F. R. A. Prado (1):
iommu/mediatek: Log with dev_err_probe when failing to parse dts

Ren Zhijie (1):
ACPI/IORT: Fix build error implicit-function-declaration

Robin Murphy (4):
iommu/dma: Add config for PCI SAC address trick
iommu: Use dev_iommu_ops() for probe_finalize
iommu: Make .release_device optional
iommu: Clean up release_device checks

Sai Prakash Ranjan (1):
iommu/arm-smmu-qcom: Add debug support for TLB sync timeouts

Sam Protsenko (6):
iommu/exynos: Reuse SysMMU constants for page size and order
iommu/exynos: Handle failed IOMMU device registration properly
iommu/exynos: Set correct dma mask for SysMMU v5+
iommu/exynos: Abstract non-common registers on different variants
iommu/exynos: Add SysMMU v7 register set
iommu/exynos: Enable default VM instance on SysMMU v7

Shameer Kolothum (8):
iommu: Introduce a callback to struct iommu_resv_region
ACPI/IORT: Make iort_iommu_msi_get_resv_regions() return void
ACPI/IORT: Provide a generic helper to retrieve reserve regions
ACPI/IORT: Add support to retrieve IORT RMR reserved regions
ACPI/IORT: Add a helper to retrieve RMR info directly
iommu/arm-smmu-v3: Introduce strtab init helper
iommu/arm-smmu-v3: Refactor arm_smmu_init_bypass_stes() to force bypass
iommu/arm-smmu-v3: Get associated RMR info and install bypass STE

Suravee Suthikulpanit (30):
iommu/amd: Introduce per PCI segment device table
iommu/amd: Introduce per PCI segment rlookup table
iommu/amd: Introduce per PCI segment old_dev_tbl_cpy
iommu/amd: Introduce per PCI segment alias_table
iommu/amd: Convert to use rlookup_amd_iommu helper function
iommu/amd: Update irq_remapping_alloc to use IOMMU lookup helper function
iommu/amd: Introduce struct amd_ir_data.iommu
iommu/amd: Update amd_irte_ops functions
iommu/amd: Update alloc_irq_table and alloc_irq_index
iommu/amd: Update set_dte_entry and clear_dte_entry
iommu/amd: Update iommu_ignore_device
iommu/amd: Update dump_dte_entry
iommu/amd: Update set_dte_irq_entry
iommu/amd: Update (un)init_device_table_dma()
iommu/amd: Update set_dev_entry_bit() and get_dev_entry_bit()
iommu/amd: Remove global amd_iommu_[dev_table/alias_table/last_bdf]
iommu/amd: Introduce get_device_sbdf_id() helper function
iommu/amd: Include PCI segment ID when initialize IOMMU
iommu/amd: Specify PCI segment ID when getting pci device
iommu/amd: Add PCI segment support for ivrs_[ioapic/hpet/acpihid] commands
iommu/amd: Change macro for IOMMU control register bit shift to decimal value
iommu/amd: Introduce Support for Extended Feature 2 Register
iommu/amd: Introduce global variable for storing common EFR and EFR2
iommu/amd: Process all IVHDs before enabling IOMMU features
iommu/amd: Globally detect SNP support
iommu/amd: Set translation valid bit only when IO page tables are in use
iommu/amd: Do not support IOMMU_DOMAIN_IDENTITY after SNP is enabled
iommu/amd: Do not support IOMMUv2 APIs when SNP is enabled
iommu/amd: Simplify and Consolidate Virtual APIC (AVIC) Enablement
iommu/amd: Add support for AVIC when SNP is enabled

Tina Zhang (1):
iommu/virtio: Add map/unmap_pages() callbacks implementation

Uros Bizjak (1):
iommu/amd: Use try_cmpxchg64 in alloc_pte and free_clear_pte

Vasant Hegde (15):
iommu/amd: Update struct iommu_dev_data definition
iommu/amd: Introduce pci segment structure
iommu/amd: Introduce per PCI segment irq_lookup_table
iommu/amd: Introduce per PCI segment dev_data_list
iommu/amd: Introduce per PCI segment unity map list
iommu/amd: Introduce per PCI segment last_bdf
iommu/amd: Introduce per PCI segment device table size
iommu/amd: Introduce per PCI segment alias table size
iommu/amd: Introduce per PCI segment rlookup table size
iommu/amd: Convert to use per PCI segment irq_lookup_table
iommu/amd: Convert to use per PCI segment rlookup_table
iommu/amd: Flush upto last_bdf only
iommu/amd: Print PCI segment ID in error log messages
iommu/amd: Update device_state structure to include PCI seg ID
iommu/amd: Update amd_iommu_fault structure to include PCI seg ID

Yunfei Wang (3):
iommu/dma: Fix race condition during iova_domain initialization
iommu/io-pgtable-arm-v7s: Add a quirk to allow pgtable PA up to 35bit
iommu/mediatek: Allow page table PA up to 35bit

Documentation/admin-guide/kernel-parameters.txt | 34 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 1 +
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 17 +
MAINTAINERS | 14 +-
arch/x86/kernel/tboot.c | 15 -
arch/x86/kvm/x86.c | 1 -
drivers/acpi/arm64/iort.c | 360 +++++++-
drivers/char/agp/intel-gtt.c | 17 +-
drivers/gpu/drm/i915/display/intel_display.c | 1 -
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 1 -
drivers/iommu/Kconfig | 36 +
drivers/iommu/amd/amd_iommu.h | 18 +-
drivers/iommu/amd/amd_iommu_types.h | 186 ++--
drivers/iommu/amd/init.c | 942 +++++++++++++--------
drivers/iommu/amd/io_pgtable.c | 6 +-
drivers/iommu/amd/iommu.c | 585 +++++++------
drivers/iommu/amd/iommu_v2.c | 67 +-
drivers/iommu/amd/quirks.c | 4 +-
drivers/iommu/apple-dart.c | 4 -
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 144 ++--
drivers/iommu/arm/arm-smmu/Makefile | 1 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 142 ++++
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 34 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h | 28 +
drivers/iommu/arm/arm-smmu/arm-smmu.c | 73 +-
drivers/iommu/arm/arm-smmu/arm-smmu.h | 1 +
drivers/iommu/arm/arm-smmu/qcom_iommu.c | 18 +-
drivers/iommu/dma-iommu.c | 21 +-
drivers/iommu/exynos-iommu.c | 182 +++-
drivers/iommu/fsl_pamu_domain.c | 5 -
drivers/iommu/intel/cap_audit.c | 2 +-
drivers/iommu/intel/debugfs.c | 51 +-
drivers/iommu/intel/dmar.c | 39 +-
drivers/iommu/intel/iommu.c | 447 ++++------
.../intel-iommu.h => drivers/iommu/intel/iommu.h | 35 +-
drivers/iommu/intel/irq_remapping.c | 2 +-
drivers/iommu/intel/pasid.c | 107 +--
drivers/iommu/intel/pasid.h | 1 +
drivers/iommu/intel/perf.c | 2 +-
drivers/iommu/intel/svm.c | 11 +-
drivers/iommu/intel/trace.c | 2 +-
.../intel_iommu.h => drivers/iommu/intel/trace.h | 7 +-
drivers/iommu/io-pgtable-arm-v7s.c | 75 +-
drivers/iommu/iommu.c | 55 +-
drivers/iommu/iova.c | 7 +-
drivers/iommu/msm_iommu.c | 7 +-
drivers/iommu/mtk_iommu.c | 71 +-
drivers/iommu/mtk_iommu_v1.c | 5 -
drivers/iommu/sprd-iommu.c | 11 -
drivers/iommu/sun50i-iommu.c | 3 -
drivers/iommu/tegra-gart.c | 5 -
drivers/iommu/tegra-smmu.c | 3 -
drivers/iommu/virtio-iommu.c | 31 +-
include/linux/acpi_iort.h | 14 +-
include/linux/amd-iommu.h | 4 +
include/linux/dmar.h | 6 +-
include/linux/io-pgtable.h | 15 +-
include/linux/iommu.h | 27 +-
include/linux/tboot.h | 2 -
59 files changed, 2521 insertions(+), 1484 deletions(-)
create mode 100644 drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
create mode 100644 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h
rename include/linux/intel-iommu.h => drivers/iommu/intel/iommu.h (97%)
rename include/trace/events/intel_iommu.h => drivers/iommu/intel/trace.h (93%)

Please pull.

Thanks,

Joerg
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2022-08-05 11:38    [W:0.058 / U:0.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site