Message ID | 1510241873-24225-1-git-send-email-boris.ostrovsky@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
>>> On 09.11.17 at 16:37, <boris.ostrovsky@oracle.com> wrote: > 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>
On 09/11/17 15:47, Jan Beulich wrote: >>>> On 09.11.17 at 16:37, <boris.ostrovsky@oracle.com> wrote: >> 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> > > Pulled into x86-next, thanks. ~Andrew
On Thu, Nov 09, 2017 at 10:37:53AM -0500, Boris Ostrovsky wrote: > 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: Roger Pau Monné <roger.pau@citrix.com> Thanks, roger.
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c index a67071c..cfcf461 100644 --- a/xen/arch/x86/hvm/dom0_build.c +++ b/xen/arch/x86/hvm/dom0_build.c @@ -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; }
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> --- Changes in v2: * Merge (pvh_acpi_table_allowed(sig) && pvh_acpi_table_in_xsdt(sig)) into a single call * Make this call return a boolean expression as opposed to explicit true/false xen/arch/x86/hvm/dom0_build.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)