133a2da488
Fixes migration regression from QEMU-1.7 to a newer QEMUs. SSDT table size in QEMU-1.7 doesn't change regardless of a number of PCI bridge devices present at startup. However in QEMU-2.0 since addition of hotplug on PCI bridges, each PCI bridge adds ~1875 bytes to SSDT table, including pc-i440fx-1.7 machine type where PCI bridge hotplug disabled via compat property. It breaks migration from "QEMU-1.7" to "QEMU-2.[01] -M pc-i440fx-1.7" since RAMBlock size of ACPI tables on target becomes larger then on source and migration fails with: "Length mismatch: /rom@etc/acpi/tables: 2000 in != 3000" error. Fix this by generating AML only for PCI0 bus if hotplug on PCI bridges is disabled and preserves PCI brigde description in AML as it was done in QEMU-1.7 for pc-i440fx-1.7. It will help to maintain size of SSDT static regardless of number of PCI bridges on startup for pc-i440fx-1.7 machine type. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> |
||
---|---|---|
.. | ||
kvm | ||
xen | ||
acpi-build.c | ||
acpi-build.h | ||
acpi-defs.h | ||
acpi-dsdt-cpu-hotplug.dsl | ||
acpi-dsdt-dbug.dsl | ||
acpi-dsdt-hpet.dsl | ||
acpi-dsdt-isa.dsl | ||
acpi-dsdt-pci-crs.dsl | ||
acpi-dsdt.dsl | ||
acpi-dsdt.hex.generated | ||
bios-linker-loader.c | ||
bios-linker-loader.h | ||
kvmvapic.c | ||
Makefile.objs | ||
multiboot.c | ||
multiboot.h | ||
pc_piix.c | ||
pc_q35.c | ||
pc_sysfw.c | ||
pc.c | ||
q35-acpi-dsdt.dsl | ||
q35-acpi-dsdt.hex.generated | ||
smbios.c | ||
ssdt-mem.dsl | ||
ssdt-mem.hex.generated | ||
ssdt-misc.dsl | ||
ssdt-misc.hex.generated | ||
ssdt-pcihp.dsl | ||
ssdt-pcihp.hex.generated | ||
ssdt-proc.dsl | ||
ssdt-proc.hex.generated |