collect then discard, they are unused for now. Signed-off-by: Michael S. Tsirkin <m...@redhat.com> --- hw/i386/acpi-build.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index e5b0b7a..aaa149b 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1663,7 +1663,8 @@ static bool acpi_has_iommu(void) static void acpi_build(PcGuestInfo *guest_info, AcpiBuildTables *tables) { - GArray *table_offsets; + GArray *rsdt_table_offsets; + GArray *xsdt_table_offsets; unsigned facs, ssdt, dsdt, rsdt; AcpiCpuInfo cpu; AcpiPmInfo pm; @@ -1680,8 +1681,10 @@ void acpi_build(PcGuestInfo *guest_info, AcpiBuildTables *tables) acpi_get_misc_info(&misc); acpi_get_pci_info(&pci); - table_offsets = g_array_new(false, true /* clear */, + rsdt_table_offsets = g_array_new(false, true /* clear */, sizeof(uint32_t)); + xsdt_table_offsets = g_array_new(false, true /* clear */, + sizeof(uint64_t)); ACPI_BUILD_DPRINTF("init ACPI tables\n"); bios_linker_loader_alloc(tables->linker, ACPI_BUILD_TABLE_FILE, @@ -1706,27 +1709,27 @@ void acpi_build(PcGuestInfo *guest_info, AcpiBuildTables *tables) aml_len += tables_blob->len - dsdt; /* ACPI tables pointed to by RSDT */ - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); build_fadt(tables_blob, tables->linker, &pm, facs, dsdt); ssdt = tables_blob->len; - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); build_ssdt(tables_blob, tables->linker, &cpu, &pm, &misc, &pci, guest_info); aml_len += tables_blob->len - ssdt; - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); build_madt(tables_blob, tables->linker, &cpu, guest_info); if (misc.has_hpet) { - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); build_hpet(tables_blob, tables->linker); } if (misc.tpm_version != TPM_VERSION_UNSPEC) { - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); build_tpm_tcpa(tables_blob, tables->linker, tables->tcpalog); - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); switch (misc.tpm_version) { case TPM_VERSION_1_2: build_tpm_ssdt(tables_blob, tables->linker); @@ -1739,15 +1742,15 @@ void acpi_build(PcGuestInfo *guest_info, AcpiBuildTables *tables) } } if (guest_info->numa_nodes) { - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); build_srat(tables_blob, tables->linker, guest_info); } if (acpi_get_mcfg(&mcfg)) { - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); build_mcfg_q35(tables_blob, tables->linker, &mcfg); } if (acpi_has_iommu()) { - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); build_dmar_q35(tables_blob, tables->linker); } @@ -1755,13 +1758,13 @@ void acpi_build(PcGuestInfo *guest_info, AcpiBuildTables *tables) for (u = acpi_table_first(); u; u = acpi_table_next(u)) { unsigned len = acpi_table_len(u); - acpi_add_table(table_offsets, NULL, tables_blob); + acpi_add_table(rsdt_table_offsets, xsdt_table_offsets, tables_blob); g_array_append_vals(tables_blob, u, len); } /* RSDT is pointed to by RSDP */ rsdt = tables_blob->len; - build_rsdt(tables_blob, tables->linker, table_offsets); + build_rsdt(tables_blob, tables->linker, rsdt_table_offsets); /* RSDP is in FSEG memory, so allocate it separately */ build_rsdp(tables->rsdp, tables->linker, rsdt); @@ -1813,7 +1816,8 @@ void acpi_build(PcGuestInfo *guest_info, AcpiBuildTables *tables) acpi_align_size(tables->linker, ACPI_BUILD_ALIGN_SIZE); /* Cleanup memory that's no longer used. */ - g_array_free(table_offsets, true); + g_array_free(xsdt_table_offsets, true); + g_array_free(rsdt_table_offsets, true); } static void acpi_ram_update(MemoryRegion *mr, GArray *data) -- MST