A first step towards getting rid of register_device_unmigratable (ivshmem and lacking vmstate support in virtio are blocking this):
Allow to register an unmigratable vmstate via qdev, i.e. tag a device declaratively. Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- hw/hw.h | 1 + savevm.c | 1 + 2 files changed, 2 insertions(+), 0 deletions(-) diff --git a/hw/hw.h b/hw/hw.h index 56447a7..97c474e 100644 --- a/hw/hw.h +++ b/hw/hw.h @@ -333,6 +333,7 @@ struct VMStateDescription { void (*pre_save)(void *opaque); VMStateField *fields; const VMStateSubsection *subsections; + bool unmigratable; }; extern const VMStateInfo vmstate_info_bool; diff --git a/savevm.c b/savevm.c index 939845c..98b2422 100644 --- a/savevm.c +++ b/savevm.c @@ -1234,6 +1234,7 @@ int vmstate_register_with_alias_id(DeviceState *dev, int instance_id, se->opaque = opaque; se->vmsd = vmsd; se->alias_id = alias_id; + se->no_migrate = vmsd->unmigratable; if (dev && dev->parent_bus && dev->parent_bus->info->get_dev_path) { char *id = dev->parent_bus->info->get_dev_path(dev); -- 1.7.1