From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com ([143.182.124.21]:49541 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752144AbaDVHFO (ORCPT ); Tue, 22 Apr 2014 03:05:14 -0400 From: Jiang Liu To: Joerg Roedel , David Woodhouse , Yinghai Lu , Bjorn Helgaas , Dan Williams , Vinod Koul , "Rafael J . Wysocki" Cc: Jiang Liu , Ashok Raj , Yijing Wang , Tony Luck , iommu@lists.linux-foundation.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org Subject: [RFC Patch Part3 V1 00/22] Enable Intel DMAR device hotplug Date: Tue, 22 Apr 2014 15:07:11 +0800 Message-Id: <1398150453-28141-1-git-send-email-jiang.liu@linux.intel.com> Sender: linux-pci-owner@vger.kernel.org List-ID: 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 mainstream kernel v3.15-rc2-36-gc089b229dfdd. Patch 1-9 are bugfixes and code improvement for current drivers. Patch 10-13 enhances DMAR framework to support hotplug Patch 14 enhances Intel interrupt remapping driver to support hotplug Patch 15 enhances error handling in Intel IR driver Patch 16 enhance Intel IOMMU to support hotplug Patch 17 enhance ACPI pci_root driver to handle DMAR units Patch 18-22 are bugfixes and code improvement again This patch set has been tested on Intel development machine. Appreciate any comments and tests. Best Regards! Jiang Liu (22): iommu/vt-d: match segment number when searching for dev_iotlb capable devices 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 readability iommu/vt-d: only dynamically allocate domain id for virtual domains iommu/vt-d: fix possible invalid memory access caused by free_dmar_iommu() 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: dynamically allocate and free seq_id for DMAR units IOMMU/vt-d: introduce helper function dmar_walk_resources() iommu/vt-d: implement DMAR unit hotplug framework iommu/vt-d: search _DSM method for DMAR hotplug iommu/vt-d: enhance intel_irq_remapping driver to support DMAR unit hotplug iommu/vt-d: enhance error recovery in function intel_enable_irq_remapping() iommu/vt-d: enhance intel-iommu driver to support DMAR unit hotplug pci, ACPI, iommu: enhance pci_root to support DMAR device hotplug iommu/vt-d: update proximity information when a new node with memory available iommu/vt-d: simplify intel_unmap_sg() and kill duplicated code iommu/vt-d: introduce helper domain_pfn_within_range() to simplify code iommu/vt-d: introduce helper function iova_size() to improve code readability iommu/vt-d: fix bug in computing domain's iommu_snooping flag drivers/acpi/pci_root.c | 16 +- drivers/iommu/dmar.c | 568 ++++++++++++++++++++++------ drivers/iommu/intel-iommu.c | 711 +++++++++++++++++++++-------------- drivers/iommu/intel_irq_remapping.c | 233 +++++++++--- include/linux/dmar.h | 80 ++-- include/linux/intel-iommu.h | 1 + include/linux/iova.h | 5 + 7 files changed, 1133 insertions(+), 481 deletions(-) -- 1.7.10.4