Skip to content
  • Igor Mammedov's avatar
    pc: acpi: generate AML only for PCI0 devices if PCI bridge hotplug is disabled · 133a2da4
    Igor Mammedov authored
    
    
    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: default avatarIgor Mammedov <imammedo@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    133a2da4