x86/pvh: Do not add DSDT and FACS to PVH dom0 XSDT

These tables are pointed to from FADT. Adding them will
result in duplicate entries in the guest's tables.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
Boris Ostrovsky authored and Andrew Cooper committed 2017-12-01 19:03:27 +00:00
1 parent 053ae230b1
commit aced70a211
1 file changed
+13 -2
+13 -2
View File
@@ -818,6 +818,17 @@ static bool __init pvh_acpi_table_allowed(const char *sig)
return true;
}
static bool __init pvh_acpi_xsdt_table_allowed(const char *sig)
{
/*
* DSDT and FACS are pointed to from FADT and thus don't belong
* in XSDT.
*/
return (pvh_acpi_table_allowed(sig) &&
strncmp(sig, ACPI_SIG_DSDT, ACPI_NAME_SIZE) &&
strncmp(sig, ACPI_SIG_FACS, ACPI_NAME_SIZE));
}
static int __init pvh_setup_acpi_xsdt(struct domain *d, paddr_t madt_addr,
paddr_t *addr)
{
@@ -841,7 +852,7 @@ static int __init pvh_setup_acpi_xsdt(struct domain *d, paddr_t madt_addr,
{
const char *sig = acpi_gbl_root_table_list.tables[i].signature.ascii;
if ( pvh_acpi_table_allowed(sig) )
if ( pvh_acpi_xsdt_table_allowed(sig) )
num_tables++;
}
@@ -888,7 +899,7 @@ static int __init pvh_setup_acpi_xsdt(struct domain *d, paddr_t madt_addr,
{
const char *sig = acpi_gbl_root_table_list.tables[i].signature.ascii;
if ( pvh_acpi_table_allowed(sig) )
if ( pvh_acpi_xsdt_table_allowed(sig) )
xsdt->table_offset_entry[j++] =
acpi_gbl_root_table_list.tables[i].address;
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.