Ver código fonte

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>
Youquan Song 16 anos atrás
pai
commit
e936d0773d
2 arquivos alterados com 5 adições e 3 exclusões
  1. 0 3
      drivers/pci/dmar.c
  2. 5 0
      drivers/pci/intr_remapping.c

+ 0 - 3
drivers/pci/dmar.c

@@ -570,9 +570,6 @@ int __init dmar_table_init(void)
 		printk(KERN_INFO PREFIX "No ATSR found\n");
 #endif
 
-#ifdef CONFIG_INTR_REMAP
-	parse_ioapics_under_ir();
-#endif
 	return 0;
 }
 

+ 5 - 0
drivers/pci/intr_remapping.c

@@ -626,6 +626,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;