lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <YuzlAT7RW1U36+ap@8bytes.org>
Date:   Fri, 5 Aug 2022 11:38:09 +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 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

Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ