diff options
author | Youquan Song <youquan.song@intel.com> | 2009-09-07 10:58:07 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2009-09-11 11:38:53 -0400 |
commit | e936d0773df172ec8600777fdd72bbc1f75f22ad (patch) | |
tree | c778f4d6aaee3e9ecbccbb4d0d31565a78e49a26 /drivers/pci/intr_remapping.c | |
parent | adb2fe0277607d50f4e9ef06e1d180051a609c25 (diff) |
intel-iommu: Disallow interrupt remapping if not all ioapics covered
Current kernel enable interrupt remapping only when all the vt-d unit support
interrupt remapping. So it is reasonable we should also disallow enabling
intr-remapping if there any io-apics that are not listed under vt-d units.
Otherwise we can run into issues.
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Youquan Song <youquan.song@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/pci/intr_remapping.c')
-rw-r--r-- | drivers/pci/intr_remapping.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c index 4f5b8712931f..ebfa47b79c5b 100644 --- a/drivers/pci/intr_remapping.c +++ b/drivers/pci/intr_remapping.c | |||
@@ -626,6 +626,11 @@ int __init enable_intr_remapping(int eim) | |||
626 | struct dmar_drhd_unit *drhd; | 626 | struct dmar_drhd_unit *drhd; |
627 | int setup = 0; | 627 | int setup = 0; |
628 | 628 | ||
629 | if (parse_ioapics_under_ir() != 1) { | ||
630 | printk(KERN_INFO "Not enable interrupt remapping\n"); | ||
631 | return -1; | ||
632 | } | ||
633 | |||
629 | for_each_drhd_unit(drhd) { | 634 | for_each_drhd_unit(drhd) { |
630 | struct intel_iommu *iommu = drhd->iommu; | 635 | struct intel_iommu *iommu = drhd->iommu; |
631 | 636 | ||