[git pull] IOMMU Updates for Linux v5.2

From: Joerg Roedel
Date: Mon May 13 2019 - 07:55:09 EST

Hi Linus,

this pull-request includes two reverts which I had to do after the merge
window started, because the reverted patches caused issues in
linux-next. But the rest of this was ready before the merge window. With
this in mind:

The following changes since commit 37624b58542fb9f2d9a70e6ea006ef8a5f66c30b:

Linux 5.1-rc7 (2019-04-28 17:04:13 -0700)

are available in the Git repository at:

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

for you to fetch changes up to b5531563e8a0b8fcc5344a38d1fad9217e08e09b:

Merge branches 'arm/tegra', 'arm/mediatek', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next (2019-05-07 09:40:12 +0200)

IOMMU Updates for Linux v5.2


- ATS support for ARM-SMMU-v3.

- AUX domain support in the IOMMU-API and the Intel VT-d driver.
This adds support for multiple DMA address spaces per
(PCI-)device. The use-case is to multiplex devices between
host and KVM guests in a more flexible way than supported by

- The Rest are smaller cleanups and fixes, two of which needed
to be reverted after testing in linux-next.

Andy Shevchenko (1):
iommu/vt-d: Switch to bitmap_zalloc()

Christoph Hellwig (4):
iommu/amd: Remove the leftover of bypass support
iommu/vt-d: Clean up iommu_no_mapping
iommu/vt-d: Use dma_direct for bypass devices
iommu/vt-d: Don't clear GFP_DMA and GFP_DMA32 flags

Dmitry Osipenko (3):
iommu/tegra-smmu: Fix invalid ASID bits on Tegra30/114
iommu/tegra-smmu: Properly release domain resources
iommu/tegra-smmu: Respect IOMMU API read-write protections

Douglas Anderson (1):
iommu/arm-smmu: Break insecure users by disabling bypass by default

Eric Auger (1):
iommu/vt-d: Fix leak in intel_pasid_alloc_table on error path

Gustavo A. R. Silva (1):
iommu/vt-d: Use struct_size() helper

Jean-Philippe Brucker (11):
iommu: Bind process address spaces to devices
iommu/amd: Use pci_prg_resp_pasid_required()
PCI: Move ATS declarations outside of CONFIG_PCI
PCI: Add a stub for pci_ats_disabled()
ACPI/IORT: Check ATS capability in root complex nodes
iommu/arm-smmu-v3: Rename arm_smmu_master_data to arm_smmu_master
iommu/arm-smmu-v3: Store SteamIDs in master
iommu/arm-smmu-v3: Add a master->domain pointer
iommu/arm-smmu-v3: Link domains and devices
iommu/arm-smmu-v3: Add support for PCI ATS
iommu/arm-smmu-v3: Disable tagged pointers

Jinyu Qi (1):
iommu/iova: Separate atomic variables to improve performance

Joerg Roedel (7):
Merge branch 'api-features' into x86/vt-d
iommu/amd: Remove amd_iommu_pd_list
Merge branch 'for-joerg/arm-smmu/updates' of git://git.kernel.org/.../will/linux into arm/smmu
Merge branch 'api-features' into arm/smmu
Revert "iommu/amd: Remove the leftover of bypass support"
Revert "iommu/amd: Flush not present cache in iommu_map_page"
Merge branches 'arm/tegra', 'arm/mediatek', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next

Lu Baolu (15):
iommu: Remove iommu_callback_data
iommu: Add APIs for multiple domains per device
iommu/vt-d: Make intel_iommu_enable_pasid() more generic
iommu/vt-d: Add per-device IOMMU feature ops entries
iommu/vt-d: Move common code out of iommu_attch_device()
iommu/vt-d: Aux-domain specific domain attach/detach
iommu/vt-d: Return ID associated with an auxiliary domain
vfio/mdev: Add iommu related member in mdev_device
vfio/type1: Add domain at(de)taching group helpers
vfio/type1: Handle different mdev isolation type
iommu/vt-d: Flush IOTLB for untrusted device in time
iommu/vt-d: Don't request page request irq under dmar_global_lock
iommu/vt-d: Cleanup: no spaces at the start of a line
iommu/vt-d: Set intel_iommu_gfx_mapped correctly
iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU

Tom Murphy (1):
iommu/amd: Flush not present cache in iommu_map_page

Vivek Gautam (1):
iommu/arm-smmu: Log CBFRSYNRA register on context fault

Wen Yang (1):
iommu/mediatek: Fix leaked of_node references

Will Deacon (1):
iommu/arm-smmu-v3: Don't disable SMMU in kdump kernel

drivers/acpi/arm64/iort.c | 11 +
drivers/iommu/Kconfig | 25 ++
drivers/iommu/amd_iommu.c | 52 +---
drivers/iommu/amd_iommu_init.c | 8 -
drivers/iommu/amd_iommu_types.h | 6 -
drivers/iommu/arm-smmu-regs.h | 2 +
drivers/iommu/arm-smmu-v3.c | 355 +++++++++++++++++-----
drivers/iommu/arm-smmu.c | 11 +-
drivers/iommu/dmar.c | 2 +-
drivers/iommu/intel-iommu.c | 584 ++++++++++++++++++++++++++++--------
drivers/iommu/intel-pasid.c | 4 +-
drivers/iommu/intel-svm.c | 19 +-
drivers/iommu/intel_irq_remapping.c | 7 +-
drivers/iommu/iommu.c | 211 ++++++++++++-
drivers/iommu/mtk_iommu.c | 8 +-
drivers/iommu/tegra-smmu.c | 41 ++-
drivers/vfio/mdev/mdev_core.c | 18 ++
drivers/vfio/mdev/mdev_private.h | 1 +
drivers/vfio/vfio_iommu_type1.c | 139 +++++++--
include/linux/intel-iommu.h | 13 +-
include/linux/iommu.h | 144 +++++++++
include/linux/iova.h | 16 +-
include/linux/mdev.h | 14 +
include/linux/pci.h | 31 +-
24 files changed, 1376 insertions(+), 346 deletions(-)

Please pull.



Attachment: signature.asc
Description: Digital signature