diff options
author | Jiang Liu <jiang.liu@linux.intel.com> | 2014-11-09 15:47:58 +0100 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2014-11-18 11:18:35 +0100 |
commit | 6b1972493a84f8fe13ff9d202745590f6c53d670 (patch) | |
tree | bb418163c4f1e0497bbc5b0b74c6159e03205610 /drivers/iommu/intel_irq_remapping.c | |
parent | iommu/vt-d: Dynamically allocate and free seq_id for DMAR units (diff) | |
download | linux-6b1972493a84f8fe13ff9d202745590f6c53d670.tar.xz linux-6b1972493a84f8fe13ff9d202745590f6c53d670.zip |
iommu/vt-d: Implement DMAR unit hotplug framework
On Intel platforms, an IO Hub (PCI/PCIe host bridge) may contain DMAR
units, so we need to support DMAR hotplug when supporting PCI host
bridge hotplug on Intel platforms.
According to Section 8.8 "Remapping Hardware Unit Hot Plug" in "Intel
Virtualization Technology for Directed IO Architecture Specification
Rev 2.2", ACPI BIOS should implement ACPI _DSM method under the ACPI
object for the PCI host bridge to support DMAR hotplug.
This patch introduces interfaces to parse ACPI _DSM method for
DMAR unit hotplug. It also implements state machines for DMAR unit
hot-addition and hot-removal.
The PCI host bridge hotplug driver should call dmar_hotplug_hotplug()
before scanning PCI devices connected for hot-addition and after
destroying all PCI devices for hot-removal.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Reviewed-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/intel_irq_remapping.c')
-rw-r--r-- | drivers/iommu/intel_irq_remapping.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c index 7c80661b35c1..1cbdb509bc7b 100644 --- a/drivers/iommu/intel_irq_remapping.c +++ b/drivers/iommu/intel_irq_remapping.c @@ -1171,3 +1171,8 @@ struct irq_remap_ops intel_irq_remap_ops = { .msi_setup_irq = intel_msi_setup_irq, .alloc_hpet_msi = intel_alloc_hpet_msi, }; + +int dmar_ir_hotplug(struct dmar_drhd_unit *dmaru, bool insert) +{ + return irq_remapping_enabled ? -ENOSYS : 0; +} |