aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/dmar.c10
-rw-r--r--drivers/pci/intr_remapping.c3
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c
index fba4f6891680..270ed222a075 100644
--- a/drivers/pci/dmar.c
+++ b/drivers/pci/dmar.c
@@ -1316,3 +1316,13 @@ int dmar_reenable_qi(struct intel_iommu *iommu)
1316 1316
1317 return 0; 1317 return 0;
1318} 1318}
1319
1320/*
1321 * Check interrupt remapping support in DMAR table description.
1322 */
1323int dmar_ir_support(void)
1324{
1325 struct acpi_table_dmar *dmar;
1326 dmar = (struct acpi_table_dmar *)dmar_tbl;
1327 return dmar->flags & 0x1;
1328}
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c
index ebfa47b79c5b..ac065144c01c 100644
--- a/drivers/pci/intr_remapping.c
+++ b/drivers/pci/intr_remapping.c
@@ -611,6 +611,9 @@ int __init intr_remapping_supported(void)
611 if (disable_intremap) 611 if (disable_intremap)
612 return 0; 612 return 0;
613 613
614 if (!dmar_ir_support())
615 return 0;
616
614 for_each_drhd_unit(drhd) { 617 for_each_drhd_unit(drhd) {
615 struct intel_iommu *iommu = drhd->iommu; 618 struct intel_iommu *iommu = drhd->iommu;
616 619