[Patch Part3 V4 00/21] Enable support of Intel DMAR device hotplug

From: Jiang Liu
Date: Fri Jul 11 2014 - 02:24:20 EST

When hot plugging a descrete IOH or a physical processor with embedded
IIO, we need to handle DMAR(or IOMMU) unit in the PCIe host bridge if
DMAR is in use. This patch set tries to enhance current DMAR/IOMMU/IR
drivers to support hotplug and is based on latest Joerg's iommu/next

Patch 1-13 are bugfixes and code improvement for current drivers.
Patch 14-17 enhances DMAR framework to support hotplug
Patch 18 enhances Intel interrupt remapping driver to support hotplug
Patch 19 enhances error handling in Intel IR driver
Patch 20 enhance Intel IOMMU to support hotplug
Patch 21 enhance ACPI pci_root driver to handle DMAR units

This patch set has been tested on Intel development machine.
Appreciate any comments and tests. With this patch set and
another IOAPIC hotplug patch set(http://www.mail-archive.com/linux-kernel
@vger.kernel.org/msg671316.html) applied, we could support full functional
socket hotplug on x86 platforms now.

1) rebase onto iommu/next branch to solve conflicts
2) refine commit messages according to Bjorn's suggestion.

1) rebase to latest v3.16-rc2
2) fix a bug in detecting super page support when hot-adding IOMMU

1) enhance the way to simplify intel_unmap_sg()
2) rename dmar_device_hotplug() to dmar_device_add/remove()
3) coding style improvment

Best Regards!

Jiang Liu (21):
iommu/vt-d: Match segment number when searching for dev_iotlb capable
iommu/vt-d: Use correct domain id to flush virtual machine domains
iommu/vt-d: Introduce helper functions to improve code readability
iommu/vt-d: Introduce helper functions to make code symmetric for
iommu/vt-d: Allocate dynamic domain id for virtual domains only
iommu/vt-d: Fix possible invalid memory access caused by
iommu/vt-d: Avoid freeing virtual machine domain in free_dmar_iommu()
iommu/vt-d: Simplify include/linux/dmar.h
iommu/vt-d: Change iommu_enable/disable_translation to return void
iommu/vt-d: Simplify intel_unmap_sg() and kill duplicated code
iommu/vt-d: Introduce helper domain_pfn_within_range() to simplify
iommu/vt-d: Introduce helper function iova_size() to improve code
iommu/vt-d: Fix issue in computing domain's iommu_snooping flag
iommu/vt-d: Introduce helper function dmar_walk_resources()
iommu/vt-d: Dynamically allocate and free seq_id for DMAR units
iommu/vt-d: Implement DMAR unit hotplug framework
iommu/vt-d: Search for ACPI _DSM method for DMAR hotplug
iommu/vt-d: Enhance intel_irq_remapping driver to support DMAR unit
iommu/vt-d: Enhance error recovery in function
iommu/vt-d: Enhance intel-iommu driver to support DMAR unit hotplug
pci, ACPI, iommu: Enhance pci_root to support DMAR device hotplug

drivers/acpi/pci_root.c | 16 +-
drivers/iommu/dmar.c | 531 ++++++++++++++++++++------
drivers/iommu/intel-iommu.c | 720 +++++++++++++++++++++--------------
drivers/iommu/intel_irq_remapping.c | 233 +++++++++---
include/linux/dmar.h | 86 +++--
include/linux/iova.h | 5 +
6 files changed, 1104 insertions(+), 487 deletions(-)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/