Use the require-config-section machine property to fix migration of older pseries (version < 2.4) started with an older QEMU (version < 2.4).
Older machines started with QEMU 2.4 are not affected by this change since they send the configuration section unconditionally. Signed-off-by: Greg Kurz <gk...@linux.vnet.ibm.com> --- v2: - added comment to explain the migration breakage - updated changelog --- hw/ppc/spapr.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 5bd8fd3ef842..256d90de8b2c 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2446,6 +2446,16 @@ static void spapr_machine_2_3_instance_options(MachineState *machine) spapr_machine_2_4_instance_options(machine); savevm_skip_section_footers(); global_state_set_optional(); + /* QEMU 2.4 added a configuration section to the migration stream. A + * call to savevm_skip_configuration() should have been added here + * since pseries-2.3 came with QEMU 2.3. This did not occur. + * The consequence is that pseries-2.3 will now always submit a + * configuration section by default and cannot be migrated back to + * QEMU 2.3. + * The require-config-section property allows pseries-2.3 to be migrated + * from QEMU 2.3 though. + */ + machine->require_config_section = false; } static void spapr_machine_2_3_class_options(MachineClass *mc)