Commit 1b6e7482 authored by Laurent Vivier's avatar Laurent Vivier Committed by David Gibson
Browse files

migration: remove register_savevm()



We can replace the four remaining calls of register_savevm() by
calls to register_savevm_live(). So we can remove the function and
as we don't allocate anymore the ops pointer with g_new0()
we don't have to free it then.

Signed-off-by: default avatarLaurent Vivier <lvivier@redhat.com>
Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 199e19ee
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2262,6 +2262,11 @@ static const MemoryRegionOps b1_ops = {
    },
};

static SaveVMHandlers savevm_vmxnet3_msix = {
    .save_state = vmxnet3_msix_save,
    .load_state = vmxnet3_msix_load,
};

static uint64_t vmxnet3_device_serial_num(VMXNET3State *s)
{
    uint64_t dsn_payload;
@@ -2331,8 +2336,7 @@ static void vmxnet3_pci_realize(PCIDevice *pci_dev, Error **errp)
                              vmxnet3_device_serial_num(s));
    }

    register_savevm(dev, "vmxnet3-msix", -1, 1,
                    vmxnet3_msix_save, vmxnet3_msix_load, s);
    register_savevm_live(dev, "vmxnet3-msix", -1, 1, &savevm_vmxnet3_msix, s);
}

static void vmxnet3_instance_init(Object *obj)
+7 −2
Original line number Diff line number Diff line
@@ -362,6 +362,11 @@ static inline bool s390_skeys_get_migration_enabled(Object *obj, Error **errp)
    return ss->migration_enabled;
}

static SaveVMHandlers savevm_s390_storage_keys = {
    .save_state = s390_storage_keys_save,
    .load_state = s390_storage_keys_load,
};

static inline void s390_skeys_set_migration_enabled(Object *obj, bool value,
                                            Error **errp)
{
@@ -375,8 +380,8 @@ static inline void s390_skeys_set_migration_enabled(Object *obj, bool value,
    ss->migration_enabled = value;

    if (ss->migration_enabled) {
        register_savevm(NULL, TYPE_S390_SKEYS, 0, 1, s390_storage_keys_save,
                        s390_storage_keys_load, ss);
        register_savevm_live(NULL, TYPE_S390_SKEYS, 0, 1,
                             &savevm_s390_storage_keys, ss);
    } else {
        unregister_savevm(DEVICE(ss), TYPE_S390_SKEYS, ss);
    }
+6 −2
Original line number Diff line number Diff line
@@ -104,6 +104,11 @@ void s390_memory_init(ram_addr_t mem_size)
    s390_skeys_init();
}

static SaveVMHandlers savevm_gtod = {
    .save_state = gtod_save,
    .load_state = gtod_load,
};

static void ccw_init(MachineState *machine)
{
    int ret;
@@ -151,8 +156,7 @@ static void ccw_init(MachineState *machine)
    s390_create_virtio_net(BUS(css_bus), "virtio-net-ccw");

    /* Register savevm handler for guest TOD clock */
    register_savevm(NULL, "todclock", 0, 1,
                    gtod_save, gtod_load, kvm_state);
    register_savevm_live(NULL, "todclock", 0, 1, &savevm_gtod, kvm_state);
}

static void s390_cpu_plug(HotplugHandler *hotplug_dev,
+0 −8
Original line number Diff line number Diff line
@@ -59,14 +59,6 @@ typedef struct SaveVMHandlers {
    LoadStateHandler *load_state;
} SaveVMHandlers;

int register_savevm(DeviceState *dev,
                    const char *idstr,
                    int instance_id,
                    int version_id,
                    SaveStateHandler *save_state,
                    LoadStateHandler *load_state,
                    void *opaque);

int register_savevm_live(DeviceState *dev,
                         const char *idstr,
                         int instance_id,
+0 −16
Original line number Diff line number Diff line
@@ -645,21 +645,6 @@ int register_savevm_live(DeviceState *dev,
    return 0;
}

int register_savevm(DeviceState *dev,
                    const char *idstr,
                    int instance_id,
                    int version_id,
                    SaveStateHandler *save_state,
                    LoadStateHandler *load_state,
                    void *opaque)
{
    SaveVMHandlers *ops = g_new0(SaveVMHandlers, 1);
    ops->save_state = save_state;
    ops->load_state = load_state;
    return register_savevm_live(dev, idstr, instance_id, version_id,
                                ops, opaque);
}

void unregister_savevm(DeviceState *dev, const char *idstr, void *opaque)
{
    SaveStateEntry *se, *new_se;
@@ -679,7 +664,6 @@ void unregister_savevm(DeviceState *dev, const char *idstr, void *opaque)
        if (strcmp(se->idstr, id) == 0 && se->opaque == opaque) {
            QTAILQ_REMOVE(&savevm_state.handlers, se, entry);
            g_free(se->compat);
            g_free(se->ops);
            g_free(se);
        }
    }
Loading