acpi: strip compiler info in built-in DSDT if any

IASL stores it's revision in each table header it generates.
That's a problem since guests see a change each time
they move between hypervisors.
We generally fill our own info for tables,
but we forgot to do this for the built-in DSDT.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
diff --git a/src/fw/acpi.c b/src/fw/acpi.c
index c29425c..0e3e3ad 100644
--- a/src/fw/acpi.c
+++ b/src/fw/acpi.c
@@ -689,13 +689,16 @@
 
     if (CONFIG_ACPI_DSDT && fadt && !fadt->dsdt) {
         /* default DSDT */
-        void *dsdt = malloc_high(sizeof(AmlCode));
+        struct acpi_table_header *dsdt = malloc_high(sizeof(AmlCode));
         if (!dsdt) {
             warn_noalloc();
             return;
         }
         memcpy(dsdt, AmlCode, sizeof(AmlCode));
         fill_dsdt(fadt, dsdt);
+        /* Strip out compiler-generated header if any */
+        memset(dsdt, 0, sizeof *dsdt);
+        build_header(dsdt, DSDT_SIGNATURE, sizeof(AmlCode), 1);
     }
 
     // Build final rsdt table