Make the code a little more maintainable by using dc->vmsd to register the vmstate instead of using vmstate_(un)register calls.
'instance_id' was being set to VMSTATE_INSTANCE_ID_ANY so there is no need for qdev_set_legacy_instance_id() calls. spapr_nvdimm_unrealize() was removed since it was only being used to call vmstate_unregister(). Cc: Shivaprasad G Bhat <sb...@linux.ibm.com> Signed-off-by: Daniel Henrique Barboza <danielhb...@gmail.com> --- hw/ppc/spapr_nvdimm.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/hw/ppc/spapr_nvdimm.c b/hw/ppc/spapr_nvdimm.c index c4c97da5de..973e9d0fbe 100644 --- a/hw/ppc/spapr_nvdimm.c +++ b/hw/ppc/spapr_nvdimm.c @@ -866,14 +866,6 @@ static void spapr_nvdimm_realize(NVDIMMDevice *dimm, Error **errp) if (!is_pmem || pmem_override) { s_nvdimm->hcall_flush_required = true; } - - vmstate_register(NULL, VMSTATE_INSTANCE_ID_ANY, - &vmstate_spapr_nvdimm_states, dimm); -} - -static void spapr_nvdimm_unrealize(NVDIMMDevice *dimm) -{ - vmstate_unregister(NULL, &vmstate_spapr_nvdimm_states, dimm); } static Property spapr_nvdimm_properties[] = { @@ -888,8 +880,9 @@ static void spapr_nvdimm_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); NVDIMMClass *nvc = NVDIMM_CLASS(oc); + dc->vmsd = &vmstate_spapr_nvdimm_states; + nvc->realize = spapr_nvdimm_realize; - nvc->unrealize = spapr_nvdimm_unrealize; device_class_set_props(dc, spapr_nvdimm_properties); } -- 2.35.1