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