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: <20200811124747.GA13876@8bytes.org>
Date:   Tue, 11 Aug 2020 14:47:53 +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.9

Hi Linus,

there is a tiny conflict with your tree because of the Kconfig changes
this time. Please see my attached resolution. With that in mind:

The following changes since commit 92ed301919932f777713b9172e525674157e983d:

  Linux 5.8-rc7 (2020-07-26 14:14:06 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v5.9

for you to fetch changes up to e46b3c0d011eab9933c183d5b47569db8e377281:

  Merge tag 'arm-smmu-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into next (2020-07-29 14:47:37 +0200)

----------------------------------------------------------------
IOMMU Updates for Linux v5.9

Including:

	- Removal of the dev->archdata.iommu (or similar) pointers from
	  most architectures. Only Sparc is left, but this is private to
	  Sparc as their drivers don't use the IOMMU-API.

	- ARM-SMMU Updates from Will Deacon:

	  -  Support for SMMU-500 implementation in Marvell
	     Armada-AP806 SoC

	  - Support for SMMU-500 implementation in NVIDIA Tegra194 SoC

	  - DT compatible string updates

	  - Remove unused IOMMU_SYS_CACHE_ONLY flag

	  - Move ARM-SMMU drivers into their own subdirectory

	- Intel VT-d Updates from Lu Baolu:

	  - Misc tweaks and fixes for vSVA

	  - Report/response page request events

	  - Cleanups

	- Move the Kconfig and Makefile bits for the AMD and Intel
	  drivers into their respective subdirectory.

	- MT6779 IOMMU Support

	- Support for new chipsets in the Renesas IOMMU driver

	- Other misc cleanups and fixes (e.g. to improve compile test
	  coverage)

----------------------------------------------------------------
Alexander A. Klimov (1):
      iommu/omap: Replace HTTP links with HTTPS ones

Baolin Wang (2):
      iommu: Mark __iommu_map_sg() as static
      iommu: Add gfp parameter to io_pgtable_ops->map()

Chao Hao (10):
      dt-bindings: mediatek: Add bindings for MT6779
      iommu/mediatek: Rename the register STANDARD_AXI_MODE(0x48) to MISC_CTRL
      iommu/mediatek: Use a u32 flags to describe different HW features
      iommu/mediatek: Setting MISC_CTRL register
      iommu/mediatek: Move inv_sel_reg into the plat_data
      iommu/mediatek: Add sub_comm id in translation fault
      iommu/mediatek: Add REG_MMU_WR_LEN_CTRL register definition
      iommu/mediatek: Extend protect pa alignment value
      iommu/mediatek: Modify MMU_CTRL register setting
      iommu/mediatek: Add mt6779 basic support

Colin Ian King (1):
      iommu/omap: Check for failure of a call to omap_iommu_dump_ctx

Denis Efremov (1):
      iommu/pamu: Use kzfree() in fsl_pamu_probe()

Hanna Hawa (1):
      iommu/arm-smmu: Workaround for Marvell Armada-AP806 SoC erratum #582743

Jacob Pan (4):
      iommu/vt-d: Remove global page support in devTLB flush
      iommu/vt-d: Fix PASID devTLB invalidation
      iommu/vt-d: Warn on out-of-range invalidation address
      iommu/vt-d: Disable multiple GPASID-dev bind

Jean-Philippe Brucker (1):
      iommu: Allow page responses without PASID

Jerry Snitselaar (3):
      iommu: Add include/uapi/linux/iommu.h to MAINTAINERS file
      iommu/vt-d: Move Kconfig and Makefile bits down into intel directory
      iommu/amd: Move Kconfig and Makefile bits down into amd directory

Joe Perches (1):
      iommu/qcom: Change CONFIG_BIG_ENDIAN to CONFIG_CPU_BIG_ENDIAN

Joerg Roedel (19):
      Merge tag 'v5.8-rc3' into arm/qcom
      iommu/amd: Add helper functions to update domain->pt_root
      iommu/exynos: Use dev_iommu_priv_get/set()
      iommu/vt-d: Use dev_iommu_priv_get/set()
      iommu/msm: Use dev_iommu_priv_get/set()
      iommu/omap: Use dev_iommu_priv_get/set()
      iommu/rockchip: Use dev_iommu_priv_get/set()
      iommu/tegra: Use dev_iommu_priv_get/set()
      iommu/pamu: Use dev_iommu_priv_get/set()
      iommu/mediatek: Do no use dev->archdata.iommu
      x86: Remove dev->archdata.iommu pointer
      ia64: Remove dev->archdata.iommu pointer
      arm: Remove dev->archdata.iommu pointer
      arm64: Remove dev->archdata.iommu pointer
      powerpc/dma: Remove dev->archdata.iommu_domain
      iommu/mediatek: Include liunx/dma-mapping.h
      Merge tag 'arm-smmu-updates' of git://git.kernel.org/.../will/linux into arm/smmu
      Merge branches 'arm/renesas', 'arm/qcom', 'arm/mediatek', 'arm/omap', 'arm/exynos', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd' and 'core' into next
      Merge tag 'arm-smmu-updates' of git://git.kernel.org/.../will/linux into next

John Garry (1):
      iommu/arm-smmu-v3: Fix trivial typo

Jonathan Marek (2):
      dt-bindings: arm-smmu: Add sm8150 and sm8250 compatible strings
      iommu: arm-smmu-impl: Use qcom impl for sm8150 and sm8250 compatibles

Krishna Reddy (5):
      iommu/arm-smmu: move TLB timeout and spin count macros
      iommu/arm-smmu: ioremap smmu mmio region before implementation init
      iommu/arm-smmu: add NVIDIA implementation for ARM MMU-500 usage
      dt-bindings: arm-smmu: add binding for Tegra194 SMMU
      iommu/arm-smmu: Add global/context fault implementation hooks

Lad Prabhakar (1):
      iommu/ipmmu-vmsa: Add an entry for r8a77961 in soc_rcar_gen3[]

Libing Zhou (1):
      iommu/amd: Remove double zero check

Liu Yi L (3):
      iommu/vt-d: Enforce PASID devTLB field mask
      iommu/vt-d: Handle non-page aligned address
      iommu/vt-d: Fix devTLB flush for vSVA

Lu Baolu (6):
      iommu/vt-d: Refactor device_to_iommu() helper
      iommu/vt-d: Add a helper to get svm and sdev for pasid
      iommu/vt-d: Report page request faults for guest SVA
      iommu/vt-d: Add page response ops support
      iommu/vt-d: Rename intel-pasid.h to pasid.h
      iommu/vt-d: Skip TE disabling on quirky gfx dedicated iommu

Marek Szyprowski (1):
      iommu: Move sg_table wrapper out of CONFIG_IOMMU_SUPPORT

Marian-Cristian Rotariu (1):
      iommu/ipmmu-vmsa: Hook up R8A774E1 DT matching code

Ming-Fan Chen (2):
      dt-bindings: mediatek: Add binding for MT6779 SMI
      memory: mtk-smi: Add basic support for MT6779

Paul Menzel (1):
      iommu/amd: Print extended features in one line to fix divergent log levels

Robin Murphy (5):
      iommu/iova: Don't BUG on invalid PFNs
      iommu/arm-smmu: Update impl quirks comment
      iommu: Tidy up Kconfig for SoC IOMMUs
      iommu/renesas: Expand COMPILE_TEST coverage
      iommu/exynos: Rename update_pte()

Shawn Guo (1):
      iommu/qcom: add optional 'tbu' clock for TLB invalidate

Tomasz Nowicki (2):
      iommu/arm-smmu: Call configuration impl hook before consuming features
      dt-bindings: arm-smmu: add compatible string for Marvell Armada-AP806 SMMU-500

Wei Yongjun (1):
      iommu: Make some functions static

Will Deacon (2):
      iommu: Remove unused IOMMU_SYS_CACHE_ONLY flag
      iommu/arm-smmu: Move Arm SMMU drivers into their own subdirectory

Yoshihiro Shimoda (2):
      dt-bindings: iommu: renesas,ipmmu-vmsa: add r8a77961 support
      iommu/renesas: Add support for r8a77961

 Documentation/arm64/silicon-errata.rst             |   3 +
 .../devicetree/bindings/iommu/arm,smmu.yaml        |  31 +-
 .../devicetree/bindings/iommu/mediatek,iommu.txt   |   2 +
 .../bindings/iommu/renesas,ipmmu-vmsa.yaml         |   1 +
 .../memory-controllers/mediatek,smi-common.txt     |   5 +-
 .../memory-controllers/mediatek,smi-larb.txt       |   3 +-
 MAINTAINERS                                        |   5 +-
 arch/arm/include/asm/device.h                      |   3 -
 arch/arm64/include/asm/device.h                    |   3 -
 arch/ia64/include/asm/device.h                     |   3 -
 arch/powerpc/include/asm/device.h                  |   3 -
 arch/x86/include/asm/device.h                      |   3 -
 drivers/gpu/drm/i915/selftests/mock_gem_device.c   |  10 +-
 drivers/gpu/drm/panfrost/panfrost_mmu.c            |   2 +-
 drivers/iommu/Kconfig                              | 145 +--------
 drivers/iommu/Makefile                             |  15 +-
 drivers/iommu/amd/Kconfig                          |  44 +++
 drivers/iommu/amd/Makefile                         |   4 +
 drivers/iommu/amd/init.c                           |  13 +-
 drivers/iommu/amd/iommu.c                          |  31 +-
 drivers/iommu/arm/Makefile                         |   2 +
 drivers/iommu/arm/arm-smmu-v3/Makefile             |   2 +
 drivers/iommu/{ => arm/arm-smmu-v3}/arm-smmu-v3.c  |   4 +-
 drivers/iommu/arm/arm-smmu/Makefile                |   4 +
 drivers/iommu/{ => arm/arm-smmu}/arm-smmu-impl.c   |  60 +++-
 drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c       | 278 +++++++++++++++++
 drivers/iommu/{ => arm/arm-smmu}/arm-smmu-qcom.c   |   0
 drivers/iommu/{ => arm/arm-smmu}/arm-smmu.c        |  42 ++-
 drivers/iommu/{ => arm/arm-smmu}/arm-smmu.h        |   6 +
 drivers/iommu/{ => arm/arm-smmu}/qcom_iommu.c      |  66 ++--
 drivers/iommu/exynos-iommu.c                       |  32 +-
 drivers/iommu/fsl_pamu.c                           |   5 +-
 drivers/iommu/fsl_pamu_domain.c                    |   8 +-
 drivers/iommu/intel/Kconfig                        |  86 ++++++
 drivers/iommu/intel/Makefile                       |   7 +
 drivers/iommu/intel/debugfs.c                      |   2 +-
 drivers/iommu/intel/dmar.c                         |  26 +-
 drivers/iommu/intel/iommu.c                        | 141 +++++----
 drivers/iommu/intel/pasid.c                        |  13 +-
 drivers/iommu/intel/{intel-pasid.h => pasid.h}     |   2 +-
 drivers/iommu/intel/svm.c                          | 335 ++++++++++++++++-----
 drivers/iommu/io-pgtable-arm-v7s.c                 |  18 +-
 drivers/iommu/io-pgtable-arm.c                     |  21 +-
 drivers/iommu/iommu.c                              |  37 ++-
 drivers/iommu/iova.c                               |   4 +-
 drivers/iommu/ipmmu-vmsa.c                         |  14 +-
 drivers/iommu/msm_iommu.c                          |   6 +-
 drivers/iommu/mtk_iommu.c                          | 112 +++++--
 drivers/iommu/mtk_iommu.h                          |  23 +-
 drivers/iommu/mtk_iommu_v1.c                       |  10 +-
 drivers/iommu/omap-iommu-debug.c                   |   3 +
 drivers/iommu/omap-iommu.c                         |  22 +-
 drivers/iommu/rockchip-iommu.c                     |   8 +-
 drivers/iommu/tegra-gart.c                         |   8 +-
 drivers/iommu/tegra-smmu.c                         |   8 +-
 drivers/media/platform/s5p-mfc/s5p_mfc_iommu.h     |   4 +-
 drivers/memory/mtk-smi.c                           |  22 ++
 include/dt-bindings/memory/mt6779-larb-port.h      | 206 +++++++++++++
 include/linux/dmar.h                               |   1 +
 include/linux/intel-iommu.h                        |  13 +-
 include/linux/io-pgtable.h                         |   2 +-
 include/linux/iommu.h                              |  38 +--
 include/uapi/linux/iommu.h                         |   6 +-
 63 files changed, 1465 insertions(+), 571 deletions(-)
 create mode 100644 drivers/iommu/amd/Kconfig
 create mode 100644 drivers/iommu/amd/Makefile
 create mode 100644 drivers/iommu/arm/Makefile
 create mode 100644 drivers/iommu/arm/arm-smmu-v3/Makefile
 rename drivers/iommu/{ => arm/arm-smmu-v3}/arm-smmu-v3.c (99%)
 create mode 100644 drivers/iommu/arm/arm-smmu/Makefile
 rename drivers/iommu/{ => arm/arm-smmu}/arm-smmu-impl.c (72%)
 create mode 100644 drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c
 rename drivers/iommu/{ => arm/arm-smmu}/arm-smmu-qcom.c (100%)
 rename drivers/iommu/{ => arm/arm-smmu}/arm-smmu.c (98%)
 rename drivers/iommu/{ => arm/arm-smmu}/arm-smmu.h (98%)
 rename drivers/iommu/{ => arm/arm-smmu}/qcom_iommu.c (95%)
 create mode 100644 drivers/iommu/intel/Kconfig
 create mode 100644 drivers/iommu/intel/Makefile
 rename drivers/iommu/intel/{intel-pasid.h => pasid.h} (98%)
 create mode 100644 include/dt-bindings/memory/mt6779-larb-port.h

Please pull.

Thanks,

	Joerg

diff --cc drivers/iommu/intel/Kconfig
index 000000000000,877beec9d987..5337ee1584b0
mode 000000,100644..100644
--- a/drivers/iommu/intel/Kconfig
+++ b/drivers/iommu/intel/Kconfig
@@@ -1,0 -1,86 +1,87 @@@
+ # SPDX-License-Identifier: GPL-2.0-only
+ # Intel IOMMU support
+ config DMAR_TABLE
+ 	bool
+ 
+ config INTEL_IOMMU
+ 	bool "Support for Intel IOMMU using DMA Remapping Devices"
+ 	depends on PCI_MSI && ACPI && (X86 || IA64)
++	select DMA_OPS
+ 	select IOMMU_API
+ 	select IOMMU_IOVA
+ 	select NEED_DMA_MAP_STATE
+ 	select DMAR_TABLE
+ 	select SWIOTLB
+ 	select IOASID
+ 	help
+ 	  DMA remapping (DMAR) devices support enables independent address
+ 	  translations for Direct Memory Access (DMA) from devices.
+ 	  These DMA remapping devices are reported via ACPI tables
+ 	  and include PCI device scope covered by these DMA
+ 	  remapping devices.
+ 
+ config INTEL_IOMMU_DEBUGFS
+ 	bool "Export Intel IOMMU internals in Debugfs"
+ 	depends on INTEL_IOMMU && IOMMU_DEBUGFS
+ 	help
+ 	  !!!WARNING!!!
+ 
+ 	  DO NOT ENABLE THIS OPTION UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!!!
+ 
+ 	  Expose Intel IOMMU internals in Debugfs.
+ 
+ 	  This option is -NOT- intended for production environments, and should
+ 	  only be enabled for debugging Intel IOMMU.
+ 
+ config INTEL_IOMMU_SVM
+ 	bool "Support for Shared Virtual Memory with Intel IOMMU"
+ 	depends on INTEL_IOMMU && X86_64
+ 	select PCI_PASID
+ 	select PCI_PRI
+ 	select MMU_NOTIFIER
+ 	select IOASID
+ 	help
+ 	  Shared Virtual Memory (SVM) provides a facility for devices
+ 	  to access DMA resources through process address space by
+ 	  means of a Process Address Space ID (PASID).
+ 
+ config INTEL_IOMMU_DEFAULT_ON
+ 	def_bool y
+ 	prompt "Enable Intel DMA Remapping Devices by default"
+ 	depends on INTEL_IOMMU
+ 	help
+ 	  Selecting this option will enable a DMAR device at boot time if
+ 	  one is found. If this option is not selected, DMAR support can
+ 	  be enabled by passing intel_iommu=on to the kernel.
+ 
+ config INTEL_IOMMU_BROKEN_GFX_WA
+ 	bool "Workaround broken graphics drivers (going away soon)"
+ 	depends on INTEL_IOMMU && BROKEN && X86
+ 	help
+ 	  Current Graphics drivers tend to use physical address
+ 	  for DMA and avoid using DMA APIs. Setting this config
+ 	  option permits the IOMMU driver to set a unity map for
+ 	  all the OS-visible memory. Hence the driver can continue
+ 	  to use physical addresses for DMA, at least until this
+ 	  option is removed in the 2.6.32 kernel.
+ 
+ config INTEL_IOMMU_FLOPPY_WA
+ 	def_bool y
+ 	depends on INTEL_IOMMU && X86
+ 	help
+ 	  Floppy disk drivers are known to bypass DMA API calls
+ 	  thereby failing to work when IOMMU is enabled. This
+ 	  workaround will setup a 1:1 mapping for the first
+ 	  16MiB to make floppy (an ISA device) work.
+ 
+ config INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
+ 	bool "Enable Intel IOMMU scalable mode by default"
+ 	depends on INTEL_IOMMU
+ 	help
+ 	  Selecting this option will enable by default the scalable mode if
+ 	  hardware presents the capability. The scalable mode is defined in
+ 	  VT-d 3.0. The scalable mode capability could be checked by reading
+ 	  /sys/devices/virtual/iommu/dmar*/intel-iommu/ecap. If this option
+ 	  is not selected, scalable mode support could also be enabled by
+ 	  passing intel_iommu=sm_on to the kernel. If not sure, please use
+ 	  the default value.

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