On 06/09/2011 11:44 AM, Jan Kiszka wrote:
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.

I thought part of the problem with this was that for some devices (like ivshmem), whether it can be migrated was dynamic. It depends on configuration, state, etc.

Regards,

Anthony Liguori


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);


Reply via email to