Similar to logical DRCs, let's convert physical DRCs to register their vmstates using dc->vmsd.
The same constraints with instance_id being set to spapr_drc_index() also applies in this case. However, since realize_physical() calls drc_realize(), qdev_set_legacy_instance_id() is already being set. Signed-off-by: Daniel Henrique Barboza <danielhb...@gmail.com> --- hw/ppc/spapr_drc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index a5ef64d2a2..5a60885876 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -640,9 +640,6 @@ static void realize_physical(DeviceState *d, Error **errp) return; } - vmstate_register(VMSTATE_IF(drcp), - spapr_drc_index(SPAPR_DR_CONNECTOR(drcp)), - &vmstate_spapr_drc_physical, drcp); qemu_register_reset(drc_physical_reset, drcp); } @@ -651,7 +648,6 @@ static void unrealize_physical(DeviceState *d) SpaprDrcPhysical *drcp = SPAPR_DRC_PHYSICAL(d); drc_unrealize(d); - vmstate_unregister(VMSTATE_IF(drcp), &vmstate_spapr_drc_physical, drcp); qemu_unregister_reset(drc_physical_reset, drcp); } @@ -662,6 +658,8 @@ static void spapr_drc_physical_class_init(ObjectClass *k, void *data) dk->realize = realize_physical; dk->unrealize = unrealize_physical; + dk->vmsd = &vmstate_spapr_drc_physical; + drck->dr_entity_sense = physical_entity_sense; drck->isolate = drc_isolate_physical; drck->unisolate = drc_unisolate_physical; -- 2.35.1