acpi: Use apic_id_limit when calculating legacy ACPI table size
commit4b5b47abbf23246bd8dde4c6faaed8b7249d8654
authorEduardo Habkost <ehabkost@redhat.com>
Fri, 11 Nov 2016 16:45:42 +0000 (11 14:45 -0200)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 18 Nov 2016 15:50:09 +0000 (18 17:50 +0200)
treec59901a7b0e0c2d537f9ab9cfb0cc7f293d226bb
parentd668fc4c7c69a3251be5965601015f3c17800818
acpi: Use apic_id_limit when calculating legacy ACPI table size

The code that calculates the legacy ACPI table size for migration
compatibility uses max_cpus when calculating legacy_aml_len (the size of
the DSDT and SSDT tables). However, the SSDT grows according to APIC ID
limit, not max_cpus.

The bug is not triggered very often because of the 4k alignment on the
table size. But it can be triggered if you are unlucky enough to cross a
4k boundary.

Change the legacy_aml_len calculation to use apic_id_limit, to calculate
the right size.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/i386/acpi-build.c