spapr: Don't migrate the hpt_maxpagesize cap to older machine types
commit3725ef1a944bbe1173b55fdabe76fb17876f1d9e
authorGreg Kurz <groug@kaod.org>
Wed, 22 May 2019 13:43:46 +0000 (22 15:43 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 29 May 2019 01:39:47 +0000 (29 11:39 +1000)
tree766df6ac03d9c7e59cfbd397e0725a22d286668a
parentbd94bc06479ad3be5e2d5db70fde9e8098b77d21
spapr: Don't migrate the hpt_maxpagesize cap to older machine types

Commit 0b8c89be7f7b added the hpt_maxpagesize capability to the migration
stream. This is okay for new machine types but it breaks backward migration
to older QEMUs, which don't expect the extra subsection.

Add a compatibility boolean flag to the sPAPR machine class and use it to
skip migration of the capability for machine types 4.0 and older. This
fixes migration to an older QEMU. Note that the destination will emit a
warning:

qemu-system-ppc64: warning: cap-hpt-max-page-size lower level (16) in incoming stream than on destination (24)

This is expected and harmless though. It is okay to migrate from a lower
HPT maximum page size (64k) to a greater one (16M).

Fixes: 0b8c89be7f7b "spapr: Add forgotten capability to migration stream"
Based-on: <20190522074016.10521-3-clg@kaod.org>
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <155853262675.1158324.17301777846476373459.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr.c
hw/ppc/spapr_caps.c
include/hw/ppc/spapr.h