[git pull] IOMMU updates for 3.3-rc1

From: Joerg Roedel
Date: Thu Jan 05 2012 - 12:28:32 EST


Hi Linus,

The following changes since commit dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50:

Linux 3.2-rc5 (2011-12-09 15:09:32 -0800)

are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next

The most important changes for this merge window in the IOMMU tree are:

* Generic support for multiple page-sizes. The iommu-layer now
gets a bitmap from the iommu-driver about the supported
page-sizes and the generic code splits the map-requests
accordingly (by Ohad Ben-Cohen)
* Device-group code, the iommu-drivers now export information
which devices the iommu hardware can safely isolate and which
not. Devices which can't be safely isolated with the hardware
belong to the same group. This will be used by the VFIO
driver (by Alex Williamson)
* AMD IOMMU driver extensions to support the version 2 of
AMD IOMMU hardware. With hardware that can make use of it this
is a step towards demand-paging for device-dma (by me)
* Other random fixes and improvements

You also find a few patches in this pull-request which are from the PCI
tree. I pulled in the patches into the x86/amd branch from the
pri-changes branch kindly provided by Jesse Barnes. The patches in this
branch should also be in the PCI tree. I had to do this because patches
in the PCI tree renamed some constants I use in my new code. Doing it
this way makes sure that everything still compiles when this tree is
pulled.

The top-commit of the next branch on my local machine is

f4e8a3c5e33972dc78f042f9e839b33e213325d0

When I did a test-pull of the branch against v3.2 there was a conflict
in drivers/pci/hotplug/acpiphp_glue.c (due to the changes I pulled in
from the PCI tree). Please let me know in case you want me to fix that.

Thanks,

Joerg

Alex Williamson (7):
iommu: Add iommu_device_group callback and iommu_group sysfs entry
iommu/intel: Implement iommu_device_group
iommu/amd: Implement iommu_device_group
iommu: Add option to group multi-function devices
PCI: Fix PRI and PASID consistency
PCI: Enable is not exposed as a PASID capability
PCI: More PRI/PASID cleanup

Eric W. Biederman (1):
PCI: msi: Disable msi interrupts when we initialize a pci device

Joerg Roedel (32):
iommu: Fix compile error with !IOMMU_API
Merge branch 'for-joerg' of git://git.kernel.org/.../ohad/linux into arm/omap
iommu/amd: Convert dev_table_entry to u64
iommu/amd: Get the maximum number of PASIDs supported
iommu/amd: Setup PPR log when supported by IOMMU
iommu/amd: Enable GT mode when supported by IOMMU
iommu/amd: Add iommuv2 flag to struct amd_iommu
iommu/amd: Put IOMMUv2 capable devices in pt_domain
iommu/amd: Implement notifier for PPR faults
iommu/amd: Add amd_iommu_domain_direct_map function
iommu/amd: Add support for IOMMUv2 domain mode
iommu/amd: Implement IOMMUv2 TLB flushing routines
iommu/amd: Implement functions to manage GCR3 table
iommu/amd: Implement function to send PPR completions
iommu/amd: Add function to get IOMMUv2 domain for pdev
iommu/amd: Add device errata handling
iommu/amd: Add stat counter for IOMMUv2 events
iommu/amd: Add driver stub for AMD IOMMUv2 support
iommu/amd: Implement device aquisition code for IOMMUv2
iommu/amd: Add routines to bind/unbind a pasid
iommu/amd: Implement IO page-fault handler
iommu/amd: Implement notifiers for IOMMUv2
iommu/amd: Add invalid_ppr callback
Merge branch 'iommu/page-sizes' into x86/amd
Merge remote-tracking branch 'pci/pri-changes' into x86/amd
iommu/amd: Adapt IOMMU driver to PCI register name changes
iommu/amd: Add amd_iommu_device_info() function
iommu/amd: Add invalidate-context call-back
iommu/amd: Remove unnecessary cache flushes in amd_iommu_resume
iommu/amd: Init stats for iommu=pt
iommu/amd: Set IOTLB invalidation timeout
Merge branches 'iommu/fixes', 'arm/omap', 'x86/amd', 'iommu/page-sizes' and 'iommu/group-id' into next

Kenji Kaneshige (2):
PCI: pciehp: Fix wrong workqueue cleanup
PCI: pciehp: Handle push button event asynchronously

KyongHo Cho (1):
iommu: Initialize domain->handler in iommu_domain_alloc()

Matthew Garrett (1):
PCI: Rework ASPM disable code

Neil Horman (1):
PCI/sysfs: add per pci device msi[x] irq listing (v5)

Ohad Ben-Cohen (11):
iommu/core: stop converting bytes to page order back and forth
iommu/core: split mapping to page sizes as supported by the hardware
iommu/omap: announce supported page sizes
iommu/msm: announce supported page sizes
iommu/amd: announce supported page sizes
iommu/intel: announce supported page sizes
iommu/core: remove the temporary pgsize settings
ARM: OMAP: iommu: declare a private iommu binding struct
ARM: OMAP3: bind omap3isp_device to its iommu device
iommu/omap: eliminate the public omap_find_iommu_device() method
iommu/omap: be verbose when omap_iommu_iova_to_phys fails

Rafael J. Wysocki (2):
PCI/ACPI: Make acpiphp ignore root bridges using SHPC native hotplug
PCI/ACPI/PM: Avoid resuming devices that don't signal PME

Documentation/ABI/testing/sysfs-bus-pci | 18 +
Documentation/kernel-parameters.txt | 9 +-
arch/arm/mach-omap2/devices.c | 7 +
arch/arm/plat-omap/include/plat/iommu.h | 31 +-
arch/arm/plat-omap/include/plat/iovmm.h | 12 +-
arch/ia64/include/asm/iommu.h | 2 +
arch/ia64/kernel/pci-dma.c | 1 +
arch/x86/include/asm/iommu.h | 1 +
arch/x86/kernel/pci-dma.c | 11 +
drivers/acpi/pci_root.c | 7 +
drivers/iommu/Kconfig | 13 +-
drivers/iommu/Makefile | 1 +
drivers/iommu/amd_iommu.c | 883 ++++++++++++++++++++++++++--
drivers/iommu/amd_iommu_init.c | 133 ++++-
drivers/iommu/amd_iommu_proto.h | 24 +
drivers/iommu/amd_iommu_types.h | 118 ++++-
drivers/iommu/amd_iommu_v2.c | 994 +++++++++++++++++++++++++++++++
drivers/iommu/intel-iommu.c | 79 +++-
drivers/iommu/iommu.c | 179 ++++++-
drivers/iommu/msm_iommu.c | 25 +-
drivers/iommu/omap-iommu.c | 80 ++--
drivers/iommu/omap-iovmm.c | 48 +-
drivers/media/video/omap3isp/isp.c | 30 +-
drivers/media/video/omap3isp/isp.h | 2 -
drivers/media/video/omap3isp/ispccdc.c | 18 +-
drivers/media/video/omap3isp/ispstat.c | 8 +-
drivers/media/video/omap3isp/ispvideo.c | 4 +-
drivers/pci/ats.c | 90 ++--
drivers/pci/hotplug/acpiphp_glue.c | 4 +-
drivers/pci/hotplug/pciehp.h | 1 -
drivers/pci/hotplug/pciehp_core.c | 11 +-
drivers/pci/hotplug/pciehp_ctrl.c | 4 +-
drivers/pci/hotplug/pciehp_hpc.c | 1 -
drivers/pci/msi.c | 121 ++++
drivers/pci/pci-acpi.c | 13 +-
drivers/pci/pcie/aspm.c | 58 ++-
include/linux/acpi.h | 4 +
include/linux/amd-iommu.h | 138 +++++-
include/linux/iommu.h | 33 +-
include/linux/msi.h | 3 +
include/linux/pci-aspm.h | 4 +-
include/linux/pci.h | 1 +
include/linux/pci_regs.h | 34 +-
virt/kvm/iommu.c | 8 +-
44 files changed, 2946 insertions(+), 320 deletions(-)
create mode 100644 drivers/iommu/amd_iommu_v2.c

Attachment: signature.asc
Description: Digital signature