diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/dmar.c | 10 | ||||
-rw-r--r-- | drivers/pci/intr_remapping.c | 3 |
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 | */ | ||
1323 | int 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 | ||