[git pull] IOMMU Updates for Linux v4.12

From: Joerg Roedel
Date: Tue May 09 2017 - 05:45:55 EST


Hi Linus,

The following changes since commit 5a7ad1146caa895ad718a534399e38bd2ba721b7:

Linux 4.11-rc8 (2017-04-23 16:53:00 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v4.12

for you to fetch changes up to 2c0248d68880fc0e783af1048b3367ee5d4412f0:

Merge branches 'arm/exynos', 'arm/omap', 'arm/rockchip', 'arm/mediatek', 'arm/smmu', 'arm/core', 'x86/vt-d', 'x86/amd' and 'core' into next (2017-05-04 18:06:17 +0200)

----------------------------------------------------------------
IOMMU Updates for Linux v4.12

This includes:

* Some code optimizations for the Intel VT-d driver

* Code to switch off a previously enabled Intel IOMMU

* Support for 'struct iommu_device' for OMAP, Rockchip and
Mediatek IOMMUs

* Some header optimizations for IOMMU core code headers and a
few fixes that became necessary in other parts of the kernel
because of that

* ACPI/IORT updates and fixes

* Some Exynos IOMMU optimizations

* Code updates for the IOMMU dma-api code to bring it closer to
use per-cpu iova caches

* New command-line option to set default domain type allocated
by the iommu core code

* Another command line option to allow the Intel IOMMU switched
off in a tboot environment

* ARM/SMMU: TLB sync optimisations for SMMUv2, Support for using
an IDENTITY domain in conjunction with DMA ops, Support for
SMR masking, Support for 16-bit ASIDs (was previously broken)

* Various other small fixes and improvements

----------------------------------------------------------------
Andy Shevchenko (5):
iommu/dmar: Rectify return code handling in detect_intel_iommu()
iommu/dmar: Return directly from a loop in dmar_dev_scope_status()
iommu/dmar: Remove redundant assignment of ret
iommu/dmar: Remove redundant ' != 0' when check return code
iommu/vt-d: Use lo_hi_readq() / lo_hi_writeq()

Joerg Roedel (14):
iommu/iova: Fix compile error with CONFIG_IOMMU_IOVA=m
iommu/vt-d: Make sure IOMMUs are off when intel_iommu=off
iommu/rockchip: Make use of 'struct iommu_device'
iommu/mediatek: Teach MTK-IOMMUv1 about 'struct iommu_device'
Merge branch 'for-joerg/arm-smmu/updates' of git://git.kernel.org/.../will/linux into arm/smmu
iommu/omap: Move data structures to omap-iommu.h
iommu/omap: Store iommu_dev pointer in arch_data
iommu/omap: Make use of 'struct iommu_device'
iommu/omap: Add iommu-group support
iommu: Include device.h in iommu.h
iommu: Move report_iommu_fault() to iommu.c
iommu: Remove pci.h include from trace/events/iommu.h
iommu: Remove trace-events include from iommu.h
Merge branches 'arm/exynos', 'arm/omap', 'arm/rockchip', 'arm/mediatek', 'arm/smmu', 'arm/core', 'x86/vt-d', 'x86/amd' and 'core' into next

Laurent Pinchart (3):
of: dma: Make of_dma_deconfigure() public
iommu: of: Handle IOMMU lookup failure with deferred probing or error
arm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops()

Lorenzo Pieralisi (3):
ACPI/IORT: Add function to check SMMUs drivers presence
ACPI/IORT: Remove linker section for IORT entries probing
ACPI/IORT: Fix CONFIG_IOMMU_API dependency

Marek Szyprowski (3):
iommu/iova: Consolidate code for adding new node to iovad domain rbtree
iommu/exynos: Don't open-code loop unrolling
iommu/exynos: Use smarter TLB flush method for v5 SYSMMU

Nate Watterson (1):
iommu/iova: Fix underflow bug in __alloc_and_insert_iova_range

Pan Bian (1):
iommu/amd: Fix incorrect error handling in amd_iommu_bind_pasid()

Paul Gortmaker (2):
soc/qbman: Fix implicit header dependency now causing build fails
soc/qbman: Move dma-mapping.h include to qman_priv.h

Peng Fan (1):
iommu/arm-smmu: Correct sid to mask

Qiuxu Zhuo (1):
iommu/vt-d: Don't print the failure message when booting non-kdump kernel

Robert Richter (1):
iommu/arm-smmu: Print message when Cavium erratum 27704 was detected

Robin Murphy (16):
iommu/dma: Don't reserve PCI I/O windows
iommu/dma: Handle IOMMU API reserved regions
iommu/dma: Make PCI window reservation generic
iommu/dma: Convert to address-based allocation
iommu/dma: Clean up MSI IOVA allocation
iommu/dma: Plumb in the per-CPU IOVA caches
iommu: Better document the IOMMU_PRIV flag
iommu/arm-smmu: Simplify ASID/VMID handling
iommu/arm-smmu: Tidy up context bank indexing
iommu/arm-smmu: Use per-context TLB sync as appropriate
iommu/arm-smmu: Poll for TLB sync completion more effectively
iommu/arm-smmu: Add global SMR masking property
iommu/io-pgtable-arm: Avoid shift overflow in block size
iommu/of: Refactor of_iommu_configure() for error handling
iommu/of: Prepare for deferred IOMMU configuration
iommu/arm-smmu: Clean up early-probing workarounds

Shaohua Li (1):
x86, iommu/vt-d: Add an option to disable Intel IOMMU force on

Sricharan R (4):
of: device: Fix overflow of coherent_dma_mask
of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices
drivers: acpi: Handle IOMMU lookup failure with deferred probing or error
arm64: dma-mapping: Remove the notifier trick to handle early setting of dma_ops

Suman Anna (3):
iommu/omap: Register driver before setting IOMMU ops
iommu/omap: Drop legacy-style device support
omap3isp: Remove iommu_group related code

Sunil Goutham (2):
iommu/arm-smmu: Fix 16-bit ASID configuration
iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU is bypassed

Thierry Reding (2):
MAINTAINERS: Add related headers to IOMMU section
iommu: Add dummy implementations for !IOMMU_IOVA

Will Deacon (5):
iommu/arm-smmu: Restrict domain attributes to UNMANAGED domains
iommu/arm-smmu: Install bypass S2CRs for IOMMU_DOMAIN_IDENTITY domains
iommu/arm-smmu-v3: Make arm_smmu_install_ste_for_dev return void
iommu/arm-smmu-v3: Install bypass STEs for IOMMU_DOMAIN_IDENTITY domains
iommu: Allow default domain type to be set on the kernel command line

zhichang.yuan (1):
iommu: Make iommu_bus_notifier return NOTIFY_DONE rather than error code

Documentation/admin-guide/kernel-parameters.txt | 15 +
.../devicetree/bindings/iommu/arm,smmu.txt | 28 ++
MAINTAINERS | 2 +
arch/arm/mm/dma-mapping.c | 9 +
arch/arm64/mm/dma-mapping.c | 143 ++------
arch/x86/kernel/tboot.c | 3 +
drivers/acpi/arm64/iort.c | 72 +++-
drivers/acpi/glue.c | 5 -
drivers/acpi/scan.c | 11 +-
drivers/base/dd.c | 9 +
drivers/base/dma-mapping.c | 41 +++
drivers/infiniband/hw/qedr/main.c | 1 +
drivers/iommu/amd_iommu_v2.c | 2 +-
drivers/iommu/arm-smmu-v3.c | 127 +++----
drivers/iommu/arm-smmu.c | 376 ++++++++++++---------
drivers/iommu/dma-iommu.c | 283 ++++++++++------
drivers/iommu/dmar.c | 35 +-
drivers/iommu/exynos-iommu.c | 32 +-
drivers/iommu/fsl_pamu.h | 1 +
drivers/iommu/intel-iommu.c | 36 +-
drivers/iommu/intel_irq_remapping.c | 15 +-
drivers/iommu/io-pgtable-arm.c | 2 +-
drivers/iommu/iommu.c | 78 ++++-
drivers/iommu/iova.c | 89 ++---
drivers/iommu/mtk_iommu_v1.c | 25 +-
drivers/iommu/of_iommu.c | 126 +++++--
drivers/iommu/omap-iommu.c | 190 +++++++----
drivers/iommu/omap-iommu.h | 34 ++
drivers/iommu/rockchip-iommu.c | 31 +-
drivers/iommu/tegra-smmu.c | 1 +
drivers/media/platform/mtk-vpu/mtk_vpu.c | 1 +
drivers/media/platform/omap3isp/isp.c | 17 -
drivers/media/platform/omap3isp/isp.h | 1 -
drivers/of/device.c | 23 +-
drivers/of/platform.c | 10 +-
drivers/pci/probe.c | 28 --
drivers/soc/fsl/qbman/qman_priv.h | 1 +
include/acpi/acpi_bus.h | 2 +-
include/asm-generic/vmlinux.lds.h | 1 -
include/linux/acpi.h | 7 +-
include/linux/acpi_iort.h | 3 -
include/linux/dma-iommu.h | 6 +
include/linux/dma-mapping.h | 12 +
include/linux/dma_remapping.h | 1 +
include/linux/intel-iommu.h | 18 +-
include/linux/iommu.h | 58 +---
include/linux/iova.h | 91 +++++
include/linux/of_device.h | 10 +-
include/linux/platform_data/iommu-omap.h | 20 --
include/trace/events/iommu.h | 1 -
50 files changed, 1314 insertions(+), 819 deletions(-)

Please pull.

Thanks,

Joerg

Attachment: signature.asc
Description: Digital signature