Merge git://git.infradead.org/iommu-2.6
[firefly-linux-kernel-4.4.55.git] / drivers / pci / intr_remapping.c
index 44803644ca058de163a8f856dcb1754ef076614b..0ed78a764ded2e10ede6f3f109ab481bca73be42 100644 (file)
@@ -603,6 +603,9 @@ int __init intr_remapping_supported(void)
        if (disable_intremap)
                return 0;
 
+       if (!dmar_ir_support())
+               return 0;
+
        for_each_drhd_unit(drhd) {
                struct intel_iommu *iommu = drhd->iommu;
 
@@ -618,6 +621,11 @@ int __init enable_intr_remapping(int eim)
        struct dmar_drhd_unit *drhd;
        int setup = 0;
 
+       if (parse_ioapics_under_ir() != 1) {
+               printk(KERN_INFO "Not enable interrupt remapping\n");
+               return -1;
+       }
+
        for_each_drhd_unit(drhd) {
                struct intel_iommu *iommu = drhd->iommu;