|
@@ -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;
|
|
|
}
|
|
|
|