diff options
Diffstat (limited to 'drivers/pci/intr_remapping.c')
-rw-r--r-- | drivers/pci/intr_remapping.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c index 44803644ca05..0ed78a764ded 100644 --- a/drivers/pci/intr_remapping.c +++ b/drivers/pci/intr_remapping.c | |||
@@ -603,6 +603,9 @@ int __init intr_remapping_supported(void) | |||
603 | if (disable_intremap) | 603 | if (disable_intremap) |
604 | return 0; | 604 | return 0; |
605 | 605 | ||
606 | if (!dmar_ir_support()) | ||
607 | return 0; | ||
608 | |||
606 | for_each_drhd_unit(drhd) { | 609 | for_each_drhd_unit(drhd) { |
607 | struct intel_iommu *iommu = drhd->iommu; | 610 | struct intel_iommu *iommu = drhd->iommu; |
608 | 611 | ||
@@ -618,6 +621,11 @@ int __init enable_intr_remapping(int eim) | |||
618 | struct dmar_drhd_unit *drhd; | 621 | struct dmar_drhd_unit *drhd; |
619 | int setup = 0; | 622 | int setup = 0; |
620 | 623 | ||
624 | if (parse_ioapics_under_ir() != 1) { | ||
625 | printk(KERN_INFO "Not enable interrupt remapping\n"); | ||
626 | return -1; | ||
627 | } | ||
628 | |||
621 | for_each_drhd_unit(drhd) { | 629 | for_each_drhd_unit(drhd) { |
622 | struct intel_iommu *iommu = drhd->iommu; | 630 | struct intel_iommu *iommu = drhd->iommu; |
623 | 631 | ||