902636
From 2659af9267586fb626f543773bf3f844727e473b Mon Sep 17 00:00:00 2001
902636
From: Peter Xu <peterx@redhat.com>
902636
Date: Fri, 31 Jan 2020 17:12:55 +0000
902636
Subject: [PATCH 13/15] migration: Define VMSTATE_INSTANCE_ID_ANY
902636
902636
RH-Author: Peter Xu <peterx@redhat.com>
902636
Message-id: <20200131171257.1066593-2-peterx@redhat.com>
902636
Patchwork-id: 93630
902636
O-Subject: [RHEL-AV-8.2.0 qemu-kvm PATCH 1/3] migration: Define VMSTATE_INSTANCE_ID_ANY
902636
Bugzilla: 1529231
902636
RH-Acked-by: Eduardo Habkost <ehabkost@redhat.com>
902636
RH-Acked-by: Juan Quintela <quintela@redhat.com>
902636
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
902636
902636
Define the new macro VMSTATE_INSTANCE_ID_ANY for callers who wants to
902636
auto-generate the vmstate instance ID.  Previously it was hard coded
902636
as -1 instead of this macro.  It helps to change this default value in
902636
the follow up patches.  No functional change.
902636
902636
Signed-off-by: Peter Xu <peterx@redhat.com>
902636
Reviewed-by: Juan Quintela <quintela@redhat.com>
902636
Signed-off-by: Juan Quintela <quintela@redhat.com>
902636
(cherry picked from commit 1df2c9a26fcb2fa32d099f8e9adcdae4207872e3)
902636
Signed-off-by: Peter Xu <peterx@redhat.com>
902636
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
902636
902636
Conflicts:
902636
  backends/dbus-vmstate.c
902636
    File deleted
902636
  hw/core/qdev.c
902636
  hw/misc/max111x.c
902636
  hw/net/eepro100.c
902636
    Due to missing commit 3cad405bab ("vmstate: replace
902636
    DeviceState with VMStateIf", 2020-01-06)
902636
902636
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
902636
---
902636
 hw/arm/stellaris.c          | 2 +-
902636
 hw/core/qdev.c              | 3 ++-
902636
 hw/display/ads7846.c        | 2 +-
902636
 hw/i2c/core.c               | 2 +-
902636
 hw/input/stellaris_input.c  | 3 ++-
902636
 hw/intc/apic_common.c       | 2 +-
902636
 hw/misc/max111x.c           | 2 +-
902636
 hw/net/eepro100.c           | 2 +-
902636
 hw/pci/pci.c                | 2 +-
902636
 hw/ppc/spapr.c              | 2 +-
902636
 hw/timer/arm_timer.c        | 2 +-
902636
 hw/tpm/tpm_emulator.c       | 3 ++-
902636
 include/migration/vmstate.h | 2 ++
902636
 migration/savevm.c          | 8 ++++----
902636
 14 files changed, 21 insertions(+), 16 deletions(-)
902636
902636
diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c
902636
index b198066..bb025e0 100644
902636
--- a/hw/arm/stellaris.c
902636
+++ b/hw/arm/stellaris.c
902636
@@ -708,7 +708,7 @@ static int stellaris_sys_init(uint32_t base, qemu_irq irq,
902636
     memory_region_init_io(&s->iomem, NULL, &ssys_ops, s, "ssys", 0x00001000);
902636
     memory_region_add_subregion(get_system_memory(), base, &s->iomem);
902636
     ssys_reset(s);
902636
-    vmstate_register(NULL, -1, &vmstate_stellaris_sys, s);
902636
+    vmstate_register(NULL, VMSTATE_INSTANCE_ID_ANY, &vmstate_stellaris_sys, s);
902636
     return 0;
902636
 }
902636
 
902636
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
902636
index cf1ba28..40f6b2b 100644
902636
--- a/hw/core/qdev.c
902636
+++ b/hw/core/qdev.c
902636
@@ -890,7 +890,8 @@ static void device_set_realized(Object *obj, bool value, Error **errp)
902636
         dev->canonical_path = object_get_canonical_path(OBJECT(dev));
902636
 
902636
         if (qdev_get_vmsd(dev)) {
902636
-            if (vmstate_register_with_alias_id(dev, -1, qdev_get_vmsd(dev), dev,
902636
+            if (vmstate_register_with_alias_id(dev, VMSTATE_INSTANCE_ID_ANY,
902636
+                                               qdev_get_vmsd(dev), dev,
902636
                                                dev->instance_id_alias,
902636
                                                dev->alias_required_for_version,
902636
                                                &local_err) < 0) {
902636
diff --git a/hw/display/ads7846.c b/hw/display/ads7846.c
902636
index c12272a..9228b40 100644
902636
--- a/hw/display/ads7846.c
902636
+++ b/hw/display/ads7846.c
902636
@@ -154,7 +154,7 @@ static void ads7846_realize(SSISlave *d, Error **errp)
902636
 
902636
     ads7846_int_update(s);
902636
 
902636
-    vmstate_register(NULL, -1, &vmstate_ads7846, s);
902636
+    vmstate_register(NULL, VMSTATE_INSTANCE_ID_ANY, &vmstate_ads7846, s);
902636
 }
902636
 
902636
 static void ads7846_class_init(ObjectClass *klass, void *data)
902636
diff --git a/hw/i2c/core.c b/hw/i2c/core.c
902636
index 92cd489..d770035 100644
902636
--- a/hw/i2c/core.c
902636
+++ b/hw/i2c/core.c
902636
@@ -61,7 +61,7 @@ I2CBus *i2c_init_bus(DeviceState *parent, const char *name)
902636
 
902636
     bus = I2C_BUS(qbus_create(TYPE_I2C_BUS, parent, name));
902636
     QLIST_INIT(&bus->current_devs);
902636
-    vmstate_register(NULL, -1, &vmstate_i2c_bus, bus);
902636
+    vmstate_register(NULL, VMSTATE_INSTANCE_ID_ANY, &vmstate_i2c_bus, bus);
902636
     return bus;
902636
 }
902636
 
902636
diff --git a/hw/input/stellaris_input.c b/hw/input/stellaris_input.c
902636
index 59892b0..e6ee5e1 100644
902636
--- a/hw/input/stellaris_input.c
902636
+++ b/hw/input/stellaris_input.c
902636
@@ -88,5 +88,6 @@ void stellaris_gamepad_init(int n, qemu_irq *irq, const int *keycode)
902636
     }
902636
     s->num_buttons = n;
902636
     qemu_add_kbd_event_handler(stellaris_gamepad_put_key, s);
902636
-    vmstate_register(NULL, -1, &vmstate_stellaris_gamepad, s);
902636
+    vmstate_register(NULL, VMSTATE_INSTANCE_ID_ANY,
902636
+                     &vmstate_stellaris_gamepad, s);
902636
 }
902636
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
902636
index 375cb6a..f2c3a7f 100644
902636
--- a/hw/intc/apic_common.c
902636
+++ b/hw/intc/apic_common.c
902636
@@ -284,7 +284,7 @@ static void apic_common_realize(DeviceState *dev, Error **errp)
902636
     }
902636
 
902636
     if (s->legacy_instance_id) {
902636
-        instance_id = -1;
902636
+        instance_id = VMSTATE_INSTANCE_ID_ANY;
902636
     }
902636
     vmstate_register_with_alias_id(NULL, instance_id, &vmstate_apic_common,
902636
                                    s, -1, 0, NULL);
902636
diff --git a/hw/misc/max111x.c b/hw/misc/max111x.c
902636
index a713149..81ee73e 100644
902636
--- a/hw/misc/max111x.c
902636
+++ b/hw/misc/max111x.c
902636
@@ -146,7 +146,7 @@ static int max111x_init(SSISlave *d, int inputs)
902636
     s->input[7] = 0x80;
902636
     s->com = 0;
902636
 
902636
-    vmstate_register(dev, -1, &vmstate_max111x, s);
902636
+    vmstate_register(dev, VMSTATE_INSTANCE_ID_ANY, &vmstate_max111x, s);
902636
     return 0;
902636
 }
902636
 
902636
diff --git a/hw/net/eepro100.c b/hw/net/eepro100.c
902636
index cc2dd8b..39920c6 100644
902636
--- a/hw/net/eepro100.c
902636
+++ b/hw/net/eepro100.c
902636
@@ -1874,7 +1874,7 @@ static void e100_nic_realize(PCIDevice *pci_dev, Error **errp)
902636
 
902636
     s->vmstate = g_memdup(&vmstate_eepro100, sizeof(vmstate_eepro100));
902636
     s->vmstate->name = qemu_get_queue(s->nic)->model;
902636
-    vmstate_register(&pci_dev->qdev, -1, s->vmstate, s);
902636
+    vmstate_register(&pci_dev->qdev, VMSTATE_INSTANCE_ID_ANY, s->vmstate, s);
902636
 }
902636
 
902636
 static void eepro100_instance_init(Object *obj)
902636
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
902636
index cbc7a32..fed019d 100644
902636
--- a/hw/pci/pci.c
902636
+++ b/hw/pci/pci.c
902636
@@ -124,7 +124,7 @@ static void pci_bus_realize(BusState *qbus, Error **errp)
902636
     bus->machine_done.notify = pcibus_machine_done;
902636
     qemu_add_machine_init_done_notifier(&bus->machine_done);
902636
 
902636
-    vmstate_register(NULL, -1, &vmstate_pcibus, bus);
902636
+    vmstate_register(NULL, VMSTATE_INSTANCE_ID_ANY, &vmstate_pcibus, bus);
902636
 }
902636
 
902636
 static void pcie_bus_realize(BusState *qbus, Error **errp)
902636
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
902636
index 8749c72..c12862d 100644
902636
--- a/hw/ppc/spapr.c
902636
+++ b/hw/ppc/spapr.c
902636
@@ -3028,7 +3028,7 @@ static void spapr_machine_init(MachineState *machine)
902636
      * interface, this is a legacy from the sPAPREnvironment structure
902636
      * which predated MachineState but had a similar function */
902636
     vmstate_register(NULL, 0, &vmstate_spapr, spapr);
902636
-    register_savevm_live("spapr/htab", -1, 1,
902636
+    register_savevm_live("spapr/htab", VMSTATE_INSTANCE_ID_ANY, 1,
902636
                          &savevm_htab_handlers, spapr);
902636
 
902636
     qbus_set_hotplug_handler(sysbus_get_default(), OBJECT(machine),
902636
diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c
902636
index af524fa..beaa285 100644
902636
--- a/hw/timer/arm_timer.c
902636
+++ b/hw/timer/arm_timer.c
902636
@@ -180,7 +180,7 @@ static arm_timer_state *arm_timer_init(uint32_t freq)
902636
     s->control = TIMER_CTRL_IE;
902636
 
902636
     s->timer = ptimer_init(arm_timer_tick, s, PTIMER_POLICY_DEFAULT);
902636
-    vmstate_register(NULL, -1, &vmstate_arm_timer, s);
902636
+    vmstate_register(NULL, VMSTATE_INSTANCE_ID_ANY, &vmstate_arm_timer, s);
902636
     return s;
902636
 }
902636
 
902636
diff --git a/hw/tpm/tpm_emulator.c b/hw/tpm/tpm_emulator.c
902636
index 22f9113..da7b490 100644
902636
--- a/hw/tpm/tpm_emulator.c
902636
+++ b/hw/tpm/tpm_emulator.c
902636
@@ -914,7 +914,8 @@ static void tpm_emulator_inst_init(Object *obj)
902636
     tpm_emu->cur_locty_number = ~0;
902636
     qemu_mutex_init(&tpm_emu->mutex);
902636
 
902636
-    vmstate_register(NULL, -1, &vmstate_tpm_emulator, obj);
902636
+    vmstate_register(NULL, VMSTATE_INSTANCE_ID_ANY,
902636
+                     &vmstate_tpm_emulator, obj);
902636
 }
902636
 
902636
 /*
902636
diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
902636
index ac4f46a..883f1cf 100644
902636
--- a/include/migration/vmstate.h
902636
+++ b/include/migration/vmstate.h
902636
@@ -1155,6 +1155,8 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDescription *vmsd,
902636
 
902636
 bool vmstate_save_needed(const VMStateDescription *vmsd, void *opaque);
902636
 
902636
+#define  VMSTATE_INSTANCE_ID_ANY  -1
902636
+
902636
 /* Returns: 0 on success, -1 on failure */
902636
 int vmstate_register_with_alias_id(DeviceState *dev, int instance_id,
902636
                                    const VMStateDescription *vmsd,
902636
diff --git a/migration/savevm.c b/migration/savevm.c
902636
index a71b930..e2e8e0a 100644
902636
--- a/migration/savevm.c
902636
+++ b/migration/savevm.c
902636
@@ -750,7 +750,7 @@ int register_savevm_live(const char *idstr,
902636
 
902636
     pstrcat(se->idstr, sizeof(se->idstr), idstr);
902636
 
902636
-    if (instance_id == -1) {
902636
+    if (instance_id == VMSTATE_INSTANCE_ID_ANY) {
902636
         se->instance_id = calculate_new_instance_id(se->idstr);
902636
     } else {
902636
         se->instance_id = instance_id;
902636
@@ -817,14 +817,14 @@ int vmstate_register_with_alias_id(DeviceState *dev, int instance_id,
902636
 
902636
             se->compat = g_new0(CompatEntry, 1);
902636
             pstrcpy(se->compat->idstr, sizeof(se->compat->idstr), vmsd->name);
902636
-            se->compat->instance_id = instance_id == -1 ?
902636
+            se->compat->instance_id = instance_id == VMSTATE_INSTANCE_ID_ANY ?
902636
                          calculate_compat_instance_id(vmsd->name) : instance_id;
902636
-            instance_id = -1;
902636
+            instance_id = VMSTATE_INSTANCE_ID_ANY;
902636
         }
902636
     }
902636
     pstrcat(se->idstr, sizeof(se->idstr), vmsd->name);
902636
 
902636
-    if (instance_id == -1) {
902636
+    if (instance_id == VMSTATE_INSTANCE_ID_ANY) {
902636
         se->instance_id = calculate_new_instance_id(se->idstr);
902636
     } else {
902636
         se->instance_id = instance_id;
902636
-- 
902636
1.8.3.1
902636