Commit 63b42624 authored by David Woodhouse's avatar David Woodhouse

iommu/vt-d: Only call dmar_acpi_dev_scope_init() if DRHD units present

As pointed out by Jörg and fixed in commit 11f1a776 ("iommu/vt-d: Check
for NULL pointer in dmar_acpi_dev_scope_init(), this code path can
bizarrely get exercised even on AMD IOMMU systems with IRQ remapping
enabled.

In addition to the defensive check for NULL which Jörg added, let's also
just avoid calling the function at all if there aren't an Intel IOMMU
units in the system.
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 11f1a776
...@@ -698,13 +698,13 @@ int __init dmar_dev_scope_init(void) ...@@ -698,13 +698,13 @@ int __init dmar_dev_scope_init(void)
if (dmar_dev_scope_status != 1) if (dmar_dev_scope_status != 1)
return dmar_dev_scope_status; return dmar_dev_scope_status;
dmar_acpi_dev_scope_init();
if (list_empty(&dmar_drhd_units)) { if (list_empty(&dmar_drhd_units)) {
dmar_dev_scope_status = -ENODEV; dmar_dev_scope_status = -ENODEV;
} else { } else {
dmar_dev_scope_status = 0; dmar_dev_scope_status = 0;
dmar_acpi_dev_scope_init();
for_each_pci_dev(dev) { for_each_pci_dev(dev) {
if (dev->is_virtfn) if (dev->is_virtfn)
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment