@@ -64,8 +64,8 @@
* a little bit, there should be plenty of free space since the DSDT
* shrunk by ~1.5k between QEMU 2.0 and QEMU 2.1.
*/
-#define ACPI_BUILD_LEGACY_CPU_AML_SIZE 97
-#define ACPI_BUILD_ALIGN_SIZE 0x1000
+#define ACPI_BUILD_CPU_AML_SIZE 97
+#define ACPI_BUILD_ALIGN_SIZE 0x1000
/* #define DEBUG_ACPI_BUILD */
#ifdef DEBUG_ACPI_BUILD
@@ -1688,10 +1688,9 @@ void acpi_build(PcGuestInfo *guest_info, AcpiBuildTables *tables)
*/
int legacy_aml_len =
guest_info->legacy_acpi_table_size +
- ACPI_BUILD_LEGACY_CPU_AML_SIZE * max_cpus;
+ ACPI_BUILD_CPU_AML_SIZE * max_cpus;
int legacy_table_size =
- ROUND_UP(tables->table_data->len - aml_len + legacy_aml_len,
- ACPI_BUILD_ALIGN_SIZE);
+ tables->table_data->len - aml_len + legacy_aml_len;
if (tables->table_data->len > legacy_table_size) {
/* Should happen only with PCI bridges and -M pc-i440fx-2.0. */
error_report("Warning: migration may not work.");
@@ -1707,8 +1706,8 @@ void acpi_build(PcGuestInfo *guest_info, AcpiBuildTables *tables)
error_report("Warning: migration may not work.");
error_report("Warning: please upgrade to a newer machine type.");
}
- acpi_align_size(tables->table_data, guest_info->acpi_table_align);
}
+ acpi_align_size(tables->table_data, guest_info->acpi_table_align);
acpi_align_size(tables->linker, ACPI_BUILD_ALIGN_SIZE);
Now that the alignment is parameterized, we can share the call to acpi_align_size between all three (1.7-2.0/2.1/2.2+) sizing algorithms. Also, with the new rule that SSDT cannot change except with machine-type compat code, the magic 97 constant for a CPU's AML size is not anymore "legacy", so rename it. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/i386/acpi-build.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)