Merge branch 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penber...
[firefly-linux-kernel-4.4.55.git] / drivers / iommu / dmar.c
index a7967ceb79e6f20336354c14ae9511eb3e79c20b..785675a56a10f8117b052ff06bf4e9b462e720b5 100644 (file)
@@ -309,6 +309,7 @@ parse_dmar_table(void)
        struct acpi_table_dmar *dmar;
        struct acpi_dmar_header *entry_header;
        int ret = 0;
+       int drhd_count = 0;
 
        /*
         * Do it again, earlier dmar_tbl mapping could be mapped with
@@ -347,6 +348,7 @@ parse_dmar_table(void)
 
                switch (entry_header->type) {
                case ACPI_DMAR_TYPE_HARDWARE_UNIT:
+                       drhd_count++;
                        ret = dmar_parse_one_drhd(entry_header);
                        break;
                case ACPI_DMAR_TYPE_RESERVED_MEMORY:
@@ -371,6 +373,8 @@ parse_dmar_table(void)
 
                entry_header = ((void *)entry_header + entry_header->length);
        }
+       if (drhd_count == 0)
+               pr_warn(FW_BUG "No DRHD structure found in DMAR table\n");
        return ret;
 }