[git pull] IOMMU Updates for Linux v4.21

From: Joerg Roedel
Date: Mon Dec 31 2018 - 11:44:12 EST


Hi Linus,

there is a small merge conflict this time in arch/powerpc/kernel/iommu.c
with the tag I send you. I did a test-merge with your latest tree
locally to include my resolution in this email, but for some reason git
shows me a conflict in another file (drivers/iommu/amd_iommu.c) in the
resulting commit, which didn't show a conflict when I did the merge.

Anyway, the conflict exists because my patches modify code in the
powerpc iommu driver which is already removed in your tree.

With that in mind:

The following changes since commit 7566ec393f4161572ba6f11ad5171fd5d59b0fbd:

Linux 4.20-rc7 (2018-12-16 15:46:55 -0800)

are available in the git repository at:

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

for you to fetch changes up to 03ebe48e235f17d70f34890d34d8153b8a84c02e:

Merge branches 'iommu/fixes', 'arm/renesas', 'arm/mediatek', 'arm/tegra', 'arm/omap', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next (2018-12-20 10:05:20 +0100)

----------------------------------------------------------------
IOMMU Updates for Linux v4.21

Including (in no particular order):

- Page table code for AMD IOMMU now supports large pages where
smaller page-sizes were mapped before. VFIO had to work around
that in the past and I included a patch to remove it (acked by
Alex Williamson)

- Patches to unmodularize a couple of IOMMU drivers that would
never work as modules anyway.

- Work to unify the the iommu-related pointers in
'struct device' into one pointer. This work is not finished
yet, but will probably be in the next cycle.

- NUMA aware allocation in iommu-dma code

- Support for r8a774a1 and r8a774c0 in the Renesas IOMMU driver

- Scalable mode support for the Intel VT-d driver

- PM runtime improvements for the ARM-SMMU driver

- Support for the QCOM-SMMUv2 IOMMU hardware from Qualcom

- Various smaller fixes and improvements

----------------------------------------------------------------
Arvind Yadav (1):
iommu/mediatek: Constify iommu_ops

Fabrizio Castro (4):
iommu/ipmmu-vmsa: Hook up R8A774A1 DT maching code
dt-bindings: iommu: ipmmu-vmsa: Add r8a774a1 support
dt-bindings: iommu: ipmmu-vmsa: Add r8a774c0 support
iommu/ipmmu-vmsa: Hook up r8a774c0 DT matching code

Ganapatrao Kulkarni (1):
iommu/dma: Use NUMA aware memory allocations in __iommu_dma_alloc_pages()

Hai Nguyen Pham (1):
iommu/ipmmu-vmsa: Hook up r8a77990 DT matching code

Joerg Roedel (31):
iommu/amd: Collect page-table pages in freelist
iommu/amd: Introduce free_sub_pt() function
iommu/amd: Ignore page-mode 7 in free_sub_pt()
iommu/amd: Allow downgrading page-sizes in alloc_pte()
iommu/amd: Restart loop if cmpxchg64 succeeded in alloc_pte()
iommu/amd: Allow to upgrade page-size
vfio/type1: Remove map_try_harder() code path
iommu/amd: Use pr_fmt()
iommu/amd: Fix line-break in error log reporting
iommu/amd: Remove leading 0s in error log messages
iommu: Introduce wrappers around dev->iommu_fwspec
ACPI/IORT: Use helper functions to access dev->iommu_fwspec
iommu/arm-smmu: Use helper functions to access dev->iommu_fwspec
iommu/dma: Use helper functions to access dev->iommu_fwspec
iommu/ipmmu-vmsa: Use helper functions to access dev->iommu_fwspec
iommu/mediatek: Use helper functions to access dev->iommu_fwspec
iommu/of: Use helper functions to access dev->iommu_fwspec
iommu/qcom: Use helper functions to access dev->iommu_fwspec
iommu/tegra: Use helper functions to access dev->iommu_fwspec
driver core: Introduce device_iommu_mapped() function
iommu/of: Use device_iommu_mapped()
ACPI/IORT: Use device_iommu_mapped()
powerpc/iommu: Use device_iommu_mapped()
xhci: Use device_iommu_mapped()
dmaengine: sh: rcar-dmac: Use device_iommu_mapped()
iommu/sysfs: Rename iommu_release_device()
iommu: Consolitate ->add/remove_device() calls
iommu/of: Don't call iommu_ops->add_device directly
ACPI/IORT: Don't call iommu_ops->add_device directly
iommu: Check for iommu_ops == NULL in iommu_probe_device()
Merge branches 'iommu/fixes', 'arm/renesas', 'arm/mediatek', 'arm/tegra', 'arm/omap', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next

Lu Baolu (13):
iommu/vtd: Cleanup dma_remapping.h header
iommu/vt-d: Enumerate the scalable mode capability
iommu/vt-d: Manage scalalble mode PASID tables
iommu/vt-d: Move page table helpers into header
iommu/vt-d: Add 256-bit invalidation descriptor support
iommu/vt-d: Reserve a domain id for FL and PT modes
iommu/vt-d: Add second level page table interface
iommu/vt-d: Setup pasid entry for RID2PASID support
iommu/vt-d: Pass pasid table to context mapping
iommu/vt-d: Setup context and enable RID2PASID support
iommu/vt-d: Add first level page table interface
iommu/vt-d: Shared virtual address in scalable mode
iommu/vt-d: Remove deferred invalidation

Paul Gortmaker (9):
iommu: Audit and remove any unnecessary uses of module.h
iommu/rockchip: Make it explicitly non-modular
iommu/msm: Make it explicitly non-modular
iommu/mediatek: Make it explicitly non-modular
iommu/ipmmu-vmsa: Make it explicitly non-modular
iommu/qcom: Make it explicitly non-modular
iommu/tegra: Make it explicitly non-modular
iommu/arm-smmu: Make arm-smmu explicitly non-modular
iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular

Robin Murphy (2):
iommu: Do physical merging in iommu_map_sg()
iommu/arm-smmu-v3: Fix big-endian CMD_SYNC writes

Sohil Mehta (1):
iommu/vt-d: Handle domain agaw being less than iommu agaw

Sricharan R (3):
iommu/arm-smmu: Add pm_runtime/sleep ops
iommu/arm-smmu: Invoke pm_runtime across the driver
iommu/arm-smmu: Add the device_link between masters and smmu

Vivek Gautam (3):
dt-bindings: arm-smmu: Add bindings for qcom,smmu-v2
iommu/arm-smmu: Add support for qcom,smmu-v2 variant
dt-bindings: arm-smmu: Add binding doc for Qcom smmu-500

Will Deacon (1):
iommu/arm-smmu-v3: Use explicit mb() when moving cons pointer

Yangtao Li (3):
iommu/omap: Remove DEBUG_SEQ_FOPS_RO()
iommu/tegra: Change to use DEFINE_SHOW_ATTRIBUTE macro
irq_remapping: Remove unused header files

Yong Wu (1):
Revert "iommu/io-pgtable-arm: Check for v7s-incapable systems"

Yoshihiro Shimoda (2):
iommu/ipmmu-vmsa: Modify ipmmu_slave_whitelist() to check SoC revisions
iommu/ipmmu-vmsa: Add an array of slave devices whitelist

Yu Zhao (1):
iommu/amd: Fix amd_iommu=force_isolation

Zhen Lei (1):
iommu/arm-smmu-v3: Avoid memory corruption from Hisilicon MSI payloads

tom (1):
iommu: Change tlb_range_add to iotlb_range_add and tlb_sync to iotlb_sync

Documentation/admin-guide/kernel-parameters.txt | 12 +-
.../devicetree/bindings/iommu/arm,smmu.txt | 43 ++
.../bindings/iommu/renesas,ipmmu-vmsa.txt | 2 +
arch/powerpc/kernel/eeh.c | 2 +-
arch/powerpc/kernel/iommu.c | 6 +-
arch/x86/kernel/tboot.c | 2 +-
drivers/acpi/arm64/iort.c | 23 +-
drivers/dma/sh/rcar-dmac.c | 2 +-
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +-
drivers/gpu/drm/i915/intel_display.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +-
drivers/iommu/amd_iommu.c | 275 ++++++++-----
drivers/iommu/amd_iommu_init.c | 64 +--
drivers/iommu/amd_iommu_types.h | 1 +
drivers/iommu/amd_iommu_v2.c | 2 +
drivers/iommu/arm-smmu-v3.c | 63 +--
drivers/iommu/arm-smmu.c | 209 ++++++++--
drivers/iommu/dma-iommu.c | 22 +-
drivers/iommu/dmar.c | 91 +++--
drivers/iommu/intel-iommu.c | 351 ++++++++--------
drivers/iommu/intel-pasid.c | 449 ++++++++++++++++++++-
drivers/iommu/intel-pasid.h | 40 +-
drivers/iommu/intel-svm.c | 171 +++-----
drivers/iommu/intel_irq_remapping.c | 6 +-
drivers/iommu/io-pgtable-arm-v7s.c | 4 -
drivers/iommu/iommu-sysfs.c | 14 +-
drivers/iommu/iommu.c | 113 +++---
drivers/iommu/ipmmu-vmsa.c | 88 ++--
drivers/iommu/irq_remapping.c | 1 -
drivers/iommu/msm_iommu.c | 13 +-
drivers/iommu/mtk_iommu.c | 25 +-
drivers/iommu/mtk_iommu_v1.c | 47 +--
drivers/iommu/of_iommu.c | 16 +-
drivers/iommu/omap-iommu-debug.c | 25 +-
drivers/iommu/qcom_iommu.c | 34 +-
drivers/iommu/rockchip-iommu.c | 13 +-
drivers/iommu/tegra-gart.c | 37 +-
drivers/iommu/tegra-smmu.c | 26 +-
drivers/misc/mic/scif/scif_rma.c | 2 +-
drivers/misc/mic/scif/scif_rma.h | 2 +-
drivers/usb/host/xhci.c | 2 +-
drivers/vfio/vfio_iommu_type1.c | 33 +-
include/linux/device.h | 10 +
include/linux/dma_remapping.h | 58 ---
include/linux/intel-iommu.h | 108 ++++-
include/linux/iommu.h | 18 +-
46 files changed, 1613 insertions(+), 918 deletions(-)
delete mode 100644 include/linux/dma_remapping.h

Please pull.

Thanks,

Joerg

Attachment: signature.asc
Description: Digital signature