[PATCH] Remove unnecessary minimum_version_id_old fields

Peter Maydell posted 1 patch 2 years, 2 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220118104434.4117879-1-peter.maydell@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Gerd Hoffmann <kraxel@redhat.com>, Andrew Baumann <Andrew.Baumann@microsoft.com>, Stafford Horne <shorne@gmail.com>, Fam Zheng <fam@euphon.net>, Aurelien Jarno <aurelien@aurel32.net>, Ani Sinha <ani@anisinha.ca>, Paolo Bonzini <pbonzini@redhat.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>, David Gibson <david@gibson.dropbear.id.au>, Igor Mammedov <imammedo@redhat.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Jason Wang <jasowang@redhat.com>, Daniel Henrique Barboza <danielhb413@gmail.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Cédric Le Goater" <clg@kaod.org>, Laurent Vivier <laurent@vivier.eu>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Vikram Garhwal <fnu.vikram@xilinx.com>, Hannes Reinecke <hare@suse.com>, Artyom Tarasenko <atar4qemu@gmail.com>, Pavel Pisa <pisa@cmp.felk.cvut.cz>, Greg Kurz <groug@kaod.org>, Alistair Francis <alistair@alistair23.me>
hw/acpi/cpu.c                 | 2 --
hw/acpi/ich9.c                | 3 ---
hw/acpi/memory_hotplug.c      | 2 --
hw/acpi/piix4.c               | 2 --
hw/acpi/tco.c                 | 1 -
hw/audio/pcspk.c              | 1 -
hw/display/macfb.c            | 1 -
hw/dma/xlnx-zdma.c            | 1 -
hw/dma/xlnx_csu_dma.c         | 1 -
hw/gpio/imx_gpio.c            | 1 -
hw/misc/bcm2835_mbox.c        | 1 -
hw/net/can/can_kvaser_pci.c   | 1 -
hw/net/can/can_mioe3680_pci.c | 1 -
hw/net/can/can_pcm3680_pci.c  | 1 -
hw/net/can/can_sja1000.c      | 2 --
hw/net/can/ctucan_core.c      | 2 --
hw/net/can/ctucan_pci.c       | 1 -
hw/ppc/ppc.c                  | 1 -
hw/scsi/megasas.c             | 1 -
hw/scsi/mptsas.c              | 1 -
hw/virtio/virtio-mmio.c       | 1 -
hw/virtio/virtio-pci.c        | 1 -
hw/virtio/virtio.c            | 1 -
target/openrisc/machine.c     | 1 -
target/ppc/machine.c          | 1 -
target/sparc/machine.c        | 4 ----
26 files changed, 36 deletions(-)
[PATCH] Remove unnecessary minimum_version_id_old fields
Posted by Peter Maydell 2 years, 2 months ago
The migration code will not look at a VMStateDescription's
minimum_version_id_old field unless that VMSD has set the
load_state_old field to something non-NULL.  (The purpose of
minimum_version_id_old is to specify what migration version is needed
for the code in the function pointed to by load_state_old to be able
to handle it on incoming migration.)

We have exactly one VMSD which still has a load_state_old,
in the PPC CPU; every other VMSD which sets minimum_version_id_old
is doing so unnecessarily. Delete all the unnecessary ones.

Commit created with:
  sed -i '/\.minimum_version_id_old/d' $(git grep -l '\.minimum_version_id_old')
with the one legitimate use then hand-edited back in.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/acpi/cpu.c                 | 2 --
 hw/acpi/ich9.c                | 3 ---
 hw/acpi/memory_hotplug.c      | 2 --
 hw/acpi/piix4.c               | 2 --
 hw/acpi/tco.c                 | 1 -
 hw/audio/pcspk.c              | 1 -
 hw/display/macfb.c            | 1 -
 hw/dma/xlnx-zdma.c            | 1 -
 hw/dma/xlnx_csu_dma.c         | 1 -
 hw/gpio/imx_gpio.c            | 1 -
 hw/misc/bcm2835_mbox.c        | 1 -
 hw/net/can/can_kvaser_pci.c   | 1 -
 hw/net/can/can_mioe3680_pci.c | 1 -
 hw/net/can/can_pcm3680_pci.c  | 1 -
 hw/net/can/can_sja1000.c      | 2 --
 hw/net/can/ctucan_core.c      | 2 --
 hw/net/can/ctucan_pci.c       | 1 -
 hw/ppc/ppc.c                  | 1 -
 hw/scsi/megasas.c             | 1 -
 hw/scsi/mptsas.c              | 1 -
 hw/virtio/virtio-mmio.c       | 1 -
 hw/virtio/virtio-pci.c        | 1 -
 hw/virtio/virtio.c            | 1 -
 target/openrisc/machine.c     | 1 -
 target/ppc/machine.c          | 1 -
 target/sparc/machine.c        | 4 ----
 26 files changed, 36 deletions(-)

diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index b20903ea303..3646dbfe68a 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -297,7 +297,6 @@ static const VMStateDescription vmstate_cpuhp_sts = {
     .name = "CPU hotplug device state",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields      = (VMStateField[]) {
         VMSTATE_BOOL(is_inserting, AcpiCpuStatus),
         VMSTATE_BOOL(is_removing, AcpiCpuStatus),
@@ -311,7 +310,6 @@ const VMStateDescription vmstate_cpu_hotplug = {
     .name = "CPU hotplug state",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields      = (VMStateField[]) {
         VMSTATE_UINT32(selector, CPUHotplugState),
         VMSTATE_UINT8(command, CPUHotplugState),
diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index ebe08ed831f..bd9bbade705 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -163,7 +163,6 @@ static const VMStateDescription vmstate_memhp_state = {
     .name = "ich9_pm/memhp",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .needed = vmstate_test_use_memhp,
     .fields      = (VMStateField[]) {
         VMSTATE_MEMORY_HOTPLUG(acpi_memory_hotplug, ICH9LPCPMRegs),
@@ -181,7 +180,6 @@ static const VMStateDescription vmstate_tco_io_state = {
     .name = "ich9_pm/tco",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .needed = vmstate_test_use_tco,
     .fields      = (VMStateField[]) {
         VMSTATE_STRUCT(tco_regs, ICH9LPCPMRegs, 1, vmstate_tco_io_sts,
@@ -208,7 +206,6 @@ static const VMStateDescription vmstate_cpuhp_state = {
     .name = "ich9_pm/cpuhp",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .needed = vmstate_test_use_cpuhp,
     .pre_load = vmstate_cpuhp_pre_load,
     .fields      = (VMStateField[]) {
diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
index d0fffcf7870..a581a2183b2 100644
--- a/hw/acpi/memory_hotplug.c
+++ b/hw/acpi/memory_hotplug.c
@@ -318,7 +318,6 @@ static const VMStateDescription vmstate_memhp_sts = {
     .name = "memory hotplug device state",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields      = (VMStateField[]) {
         VMSTATE_BOOL(is_enabled, MemStatus),
         VMSTATE_BOOL(is_inserting, MemStatus),
@@ -332,7 +331,6 @@ const VMStateDescription vmstate_memory_hotplug = {
     .name = "memory hotplug state",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields      = (VMStateField[]) {
         VMSTATE_UINT32(selector, MemHotplugState),
         VMSTATE_STRUCT_VARRAY_POINTER_UINT32(devs, MemHotplugState, dev_count,
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index f0b5fac44a1..cc37fa34168 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -230,7 +230,6 @@ static const VMStateDescription vmstate_memhp_state = {
     .name = "piix4_pm/memhp",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .needed = vmstate_test_use_memhp,
     .fields      = (VMStateField[]) {
         VMSTATE_MEMORY_HOTPLUG(acpi_memory_hotplug, PIIX4PMState),
@@ -255,7 +254,6 @@ static const VMStateDescription vmstate_cpuhp_state = {
     .name = "piix4_pm/cpuhp",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .needed = vmstate_test_use_cpuhp,
     .pre_load = vmstate_cpuhp_pre_load,
     .fields      = (VMStateField[]) {
diff --git a/hw/acpi/tco.c b/hw/acpi/tco.c
index cf1e68a5393..4783721e4e7 100644
--- a/hw/acpi/tco.c
+++ b/hw/acpi/tco.c
@@ -239,7 +239,6 @@ const VMStateDescription vmstate_tco_io_sts = {
     .name = "tco io device status",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields      = (VMStateField[]) {
         VMSTATE_UINT16(tco.rld, TCOIORegs),
         VMSTATE_UINT8(tco.din, TCOIORegs),
diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c
index b056c05387c..dfc7ebca4e1 100644
--- a/hw/audio/pcspk.c
+++ b/hw/audio/pcspk.c
@@ -209,7 +209,6 @@ static const VMStateDescription vmstate_spk = {
     .name = "pcspk",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .needed = migrate_needed,
     .fields      = (VMStateField[]) {
         VMSTATE_UINT8(data_on, PCSpkState),
diff --git a/hw/display/macfb.c b/hw/display/macfb.c
index 4bd7c3ad6a5..2eeb80cc3f0 100644
--- a/hw/display/macfb.c
+++ b/hw/display/macfb.c
@@ -616,7 +616,6 @@ static const VMStateDescription vmstate_macfb = {
     .name = "macfb",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .post_load = macfb_post_load,
     .fields = (VMStateField[]) {
         VMSTATE_UINT8_ARRAY(color_palette, MacfbState, 256 * 3),
diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c
index a5a92b4ff8c..4eb7f66e9f8 100644
--- a/hw/dma/xlnx-zdma.c
+++ b/hw/dma/xlnx-zdma.c
@@ -806,7 +806,6 @@ static const VMStateDescription vmstate_zdma = {
     .name = TYPE_XLNX_ZDMA,
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_UINT32_ARRAY(regs, XlnxZDMA, ZDMA_R_MAX),
         VMSTATE_UINT32(state, XlnxZDMA),
diff --git a/hw/dma/xlnx_csu_dma.c b/hw/dma/xlnx_csu_dma.c
index 896bb3574dd..5b62a2f74f7 100644
--- a/hw/dma/xlnx_csu_dma.c
+++ b/hw/dma/xlnx_csu_dma.c
@@ -663,7 +663,6 @@ static const VMStateDescription vmstate_xlnx_csu_dma = {
     .name = TYPE_XLNX_CSU_DMA,
     .version_id = 0,
     .minimum_version_id = 0,
-    .minimum_version_id_old = 0,
     .fields = (VMStateField[]) {
         VMSTATE_PTIMER(src_timer, XlnxCSUDMA),
         VMSTATE_UINT16(width, XlnxCSUDMA),
diff --git a/hw/gpio/imx_gpio.c b/hw/gpio/imx_gpio.c
index 7a591804a99..c7f98b7bb15 100644
--- a/hw/gpio/imx_gpio.c
+++ b/hw/gpio/imx_gpio.c
@@ -277,7 +277,6 @@ static const VMStateDescription vmstate_imx_gpio = {
     .name = TYPE_IMX_GPIO,
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_UINT32(dr, IMXGPIOState),
         VMSTATE_UINT32(gdir, IMXGPIOState),
diff --git a/hw/misc/bcm2835_mbox.c b/hw/misc/bcm2835_mbox.c
index 9f73cbd5e41..04e53c98282 100644
--- a/hw/misc/bcm2835_mbox.c
+++ b/hw/misc/bcm2835_mbox.c
@@ -271,7 +271,6 @@ static const VMStateDescription vmstate_bcm2835_mbox = {
     .name = TYPE_BCM2835_MBOX,
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields      = (VMStateField[]) {
         VMSTATE_BOOL_ARRAY(available, BCM2835MboxState, MBOX_CHAN_COUNT),
         VMSTATE_STRUCT_ARRAY(mbox, BCM2835MboxState, 2, 1,
diff --git a/hw/net/can/can_kvaser_pci.c b/hw/net/can/can_kvaser_pci.c
index 168b3a620d9..94b3a534f84 100644
--- a/hw/net/can/can_kvaser_pci.c
+++ b/hw/net/can/can_kvaser_pci.c
@@ -266,7 +266,6 @@ static const VMStateDescription vmstate_kvaser_pci = {
     .name = "kvaser_pci",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_PCI_DEVICE(dev, KvaserPCIState),
         /* Load this before sja_state.  */
diff --git a/hw/net/can/can_mioe3680_pci.c b/hw/net/can/can_mioe3680_pci.c
index 7a79e2605ae..29dc696f7c8 100644
--- a/hw/net/can/can_mioe3680_pci.c
+++ b/hw/net/can/can_mioe3680_pci.c
@@ -203,7 +203,6 @@ static const VMStateDescription vmstate_mioe3680_pci = {
     .name = "mioe3680_pci",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_PCI_DEVICE(dev, Mioe3680PCIState),
         VMSTATE_STRUCT(sja_state[0], Mioe3680PCIState, 0, vmstate_can_sja,
diff --git a/hw/net/can/can_pcm3680_pci.c b/hw/net/can/can_pcm3680_pci.c
index 8ef4e74af02..e8e57f4f33e 100644
--- a/hw/net/can/can_pcm3680_pci.c
+++ b/hw/net/can/can_pcm3680_pci.c
@@ -204,7 +204,6 @@ static const VMStateDescription vmstate_pcm3680i_pci = {
     .name = "pcm3680i_pci",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_PCI_DEVICE(dev, Pcm3680iPCIState),
         VMSTATE_STRUCT(sja_state[0], Pcm3680iPCIState, 0,
diff --git a/hw/net/can/can_sja1000.c b/hw/net/can/can_sja1000.c
index 34eea684ced..3ba803e947d 100644
--- a/hw/net/can/can_sja1000.c
+++ b/hw/net/can/can_sja1000.c
@@ -928,7 +928,6 @@ const VMStateDescription vmstate_qemu_can_filter = {
     .name = "qemu_can_filter",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_UINT32(can_id, qemu_can_filter),
         VMSTATE_UINT32(can_mask, qemu_can_filter),
@@ -952,7 +951,6 @@ const VMStateDescription vmstate_can_sja = {
     .name = "can_sja",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .post_load = can_sja_post_load,
     .fields = (VMStateField[]) {
         VMSTATE_UINT8(mode, CanSJA1000State),
diff --git a/hw/net/can/ctucan_core.c b/hw/net/can/ctucan_core.c
index d171c372e00..f2c3b6a7061 100644
--- a/hw/net/can/ctucan_core.c
+++ b/hw/net/can/ctucan_core.c
@@ -617,7 +617,6 @@ const VMStateDescription vmstate_qemu_ctucan_tx_buffer = {
     .name = "qemu_ctucan_tx_buffer",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_UINT8_ARRAY(data, CtuCanCoreMsgBuffer, CTUCAN_CORE_MSG_MAX_LEN),
         VMSTATE_END_OF_LIST()
@@ -636,7 +635,6 @@ const VMStateDescription vmstate_ctucan = {
     .name = "ctucan",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .post_load = ctucan_post_load,
     .fields = (VMStateField[]) {
         VMSTATE_UINT32(mode_settings.u32, CtuCanCoreState),
diff --git a/hw/net/can/ctucan_pci.c b/hw/net/can/ctucan_pci.c
index f1c86cd06a7..50f4ea6cd63 100644
--- a/hw/net/can/ctucan_pci.c
+++ b/hw/net/can/ctucan_pci.c
@@ -215,7 +215,6 @@ static const VMStateDescription vmstate_ctucan_pci = {
     .name = "ctucan_pci",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_PCI_DEVICE(dev, CtuCanPCIState),
         VMSTATE_STRUCT(ctucan_state[0], CtuCanPCIState, 0, vmstate_ctucan,
diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
index bb5bee9a338..462c87dba8b 100644
--- a/hw/ppc/ppc.c
+++ b/hw/ppc/ppc.c
@@ -1049,7 +1049,6 @@ const VMStateDescription vmstate_ppc_timebase = {
     .name = "timebase",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .pre_save = timebase_pre_save,
     .fields      = (VMStateField []) {
         VMSTATE_UINT64(guest_timebase, PPCTimebase),
diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
index dc9bbdb740e..1a72e52396a 100644
--- a/hw/scsi/megasas.c
+++ b/hw/scsi/megasas.c
@@ -2293,7 +2293,6 @@ static const VMStateDescription vmstate_megasas_gen2 = {
     .name = "megasas-gen2",
     .version_id = 0,
     .minimum_version_id = 0,
-    .minimum_version_id_old = 0,
     .fields      = (VMStateField[]) {
         VMSTATE_PCI_DEVICE(parent_obj, MegasasState),
         VMSTATE_MSIX(parent_obj, MegasasState),
diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
index 5181b0c0b0d..706cf0df3a1 100644
--- a/hw/scsi/mptsas.c
+++ b/hw/scsi/mptsas.c
@@ -1363,7 +1363,6 @@ static const VMStateDescription vmstate_mptsas = {
     .name = "mptsas",
     .version_id = 0,
     .minimum_version_id = 0,
-    .minimum_version_id_old = 0,
     .post_load = mptsas_post_load,
     .fields      = (VMStateField[]) {
         VMSTATE_PCI_DEVICE(dev, MPTSASState),
diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
index 72da12fea59..688eccda94d 100644
--- a/hw/virtio/virtio-mmio.c
+++ b/hw/virtio/virtio-mmio.c
@@ -592,7 +592,6 @@ static const VMStateDescription vmstate_virtio_mmio = {
     .name = "virtio_mmio",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_END_OF_LIST()
     },
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 750aa47ec14..f9cf9592fdf 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -131,7 +131,6 @@ static const VMStateDescription vmstate_virtio_pci = {
     .name = "virtio_pci",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_END_OF_LIST()
     },
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index aae72fb8b73..9e8f51dfb03 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -2808,7 +2808,6 @@ static const VMStateDescription vmstate_virtio = {
     .name = "virtio",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_END_OF_LIST()
     },
diff --git a/target/openrisc/machine.c b/target/openrisc/machine.c
index 6239725c4f5..b7d73886401 100644
--- a/target/openrisc/machine.c
+++ b/target/openrisc/machine.c
@@ -25,7 +25,6 @@ static const VMStateDescription vmstate_tlb_entry = {
     .name = "tlb_entry",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_UINTTL(mr, OpenRISCTLBEntry),
         VMSTATE_UINTTL(tr, OpenRISCTLBEntry),
diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index 756d8de5d8d..a46aa96e9d8 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -532,7 +532,6 @@ static const VMStateDescription vmstate_tm = {
     .name = "cpu/tm",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .needed = tm_needed,
     .fields      = (VMStateField []) {
         VMSTATE_UINTTL_ARRAY(env.tm_gpr, PowerPCCPU, 32),
diff --git a/target/sparc/machine.c b/target/sparc/machine.c
index 917375c3a17..44b9e7d75d6 100644
--- a/target/sparc/machine.c
+++ b/target/sparc/machine.c
@@ -10,7 +10,6 @@ static const VMStateDescription vmstate_cpu_timer = {
     .name = "cpu_timer",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_UINT32(frequency, CPUTimer),
         VMSTATE_UINT32(disabled, CPUTimer),
@@ -30,7 +29,6 @@ static const VMStateDescription vmstate_trap_state = {
     .name = "trap_state",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_UINT64(tpc, trap_state),
         VMSTATE_UINT64(tnpc, trap_state),
@@ -44,7 +42,6 @@ static const VMStateDescription vmstate_tlb_entry = {
     .name = "tlb_entry",
     .version_id = 1,
     .minimum_version_id = 1,
-    .minimum_version_id_old = 1,
     .fields = (VMStateField[]) {
         VMSTATE_UINT64(tag, SparcTLBEntry),
         VMSTATE_UINT64(tte, SparcTLBEntry),
@@ -113,7 +110,6 @@ const VMStateDescription vmstate_sparc_cpu = {
     .name = "cpu",
     .version_id = SPARC_VMSTATE_VER,
     .minimum_version_id = SPARC_VMSTATE_VER,
-    .minimum_version_id_old = SPARC_VMSTATE_VER,
     .pre_save = cpu_pre_save,
     .fields = (VMStateField[]) {
         VMSTATE_UINTTL_ARRAY(env.gregs, SPARCCPU, 8),
-- 
2.25.1


Re: [PATCH] Remove unnecessary minimum_version_id_old fields
Posted by Peter Maydell 2 years, 2 months ago
On Tue, 18 Jan 2022 at 10:44, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> The migration code will not look at a VMStateDescription's
> minimum_version_id_old field unless that VMSD has set the
> load_state_old field to something non-NULL.  (The purpose of
> minimum_version_id_old is to specify what migration version is needed
> for the code in the function pointed to by load_state_old to be able
> to handle it on incoming migration.)
>
> We have exactly one VMSD which still has a load_state_old,
> in the PPC CPU; every other VMSD which sets minimum_version_id_old
> is doing so unnecessarily. Delete all the unnecessary ones.

...and https://patchew.org/QEMU/20220118104150.1899661-1-clg@kaod.org/
proposes removing that PPC usage, so once both this patch and that
one go in we can delete the migration/ code relating to load_state_old.

-- PMM

Re: [PATCH] Remove unnecessary minimum_version_id_old fields
Posted by Dr. David Alan Gilbert 2 years, 2 months ago
* Peter Maydell (peter.maydell@linaro.org) wrote:
> The migration code will not look at a VMStateDescription's
> minimum_version_id_old field unless that VMSD has set the
> load_state_old field to something non-NULL.  (The purpose of
> minimum_version_id_old is to specify what migration version is needed
> for the code in the function pointed to by load_state_old to be able
> to handle it on incoming migration.)

Agreed;
        if (vmsd->load_state_old &&
            version_id >= vmsd->minimum_version_id_old) {

> We have exactly one VMSD which still has a load_state_old,
> in the PPC CPU; every other VMSD which sets minimum_version_id_old
> is doing so unnecessarily. Delete all the unnecessary ones.

Yeh

> Commit created with:
>   sed -i '/\.minimum_version_id_old/d' $(git grep -l '\.minimum_version_id_old')
> with the one legitimate use then hand-edited back in.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  hw/acpi/cpu.c                 | 2 --
>  hw/acpi/ich9.c                | 3 ---
>  hw/acpi/memory_hotplug.c      | 2 --
>  hw/acpi/piix4.c               | 2 --
>  hw/acpi/tco.c                 | 1 -
>  hw/audio/pcspk.c              | 1 -
>  hw/display/macfb.c            | 1 -
>  hw/dma/xlnx-zdma.c            | 1 -
>  hw/dma/xlnx_csu_dma.c         | 1 -
>  hw/gpio/imx_gpio.c            | 1 -
>  hw/misc/bcm2835_mbox.c        | 1 -
>  hw/net/can/can_kvaser_pci.c   | 1 -
>  hw/net/can/can_mioe3680_pci.c | 1 -
>  hw/net/can/can_pcm3680_pci.c  | 1 -
>  hw/net/can/can_sja1000.c      | 2 --
>  hw/net/can/ctucan_core.c      | 2 --
>  hw/net/can/ctucan_pci.c       | 1 -
>  hw/ppc/ppc.c                  | 1 -
>  hw/scsi/megasas.c             | 1 -
>  hw/scsi/mptsas.c              | 1 -
>  hw/virtio/virtio-mmio.c       | 1 -
>  hw/virtio/virtio-pci.c        | 1 -
>  hw/virtio/virtio.c            | 1 -
>  target/openrisc/machine.c     | 1 -
>  target/ppc/machine.c          | 1 -
>  target/sparc/machine.c        | 4 ----
>  26 files changed, 36 deletions(-)
> 
> diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
> index b20903ea303..3646dbfe68a 100644
> --- a/hw/acpi/cpu.c
> +++ b/hw/acpi/cpu.c
> @@ -297,7 +297,6 @@ static const VMStateDescription vmstate_cpuhp_sts = {
>      .name = "CPU hotplug device state",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields      = (VMStateField[]) {
>          VMSTATE_BOOL(is_inserting, AcpiCpuStatus),
>          VMSTATE_BOOL(is_removing, AcpiCpuStatus),
> @@ -311,7 +310,6 @@ const VMStateDescription vmstate_cpu_hotplug = {
>      .name = "CPU hotplug state",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields      = (VMStateField[]) {
>          VMSTATE_UINT32(selector, CPUHotplugState),
>          VMSTATE_UINT8(command, CPUHotplugState),
> diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
> index ebe08ed831f..bd9bbade705 100644
> --- a/hw/acpi/ich9.c
> +++ b/hw/acpi/ich9.c
> @@ -163,7 +163,6 @@ static const VMStateDescription vmstate_memhp_state = {
>      .name = "ich9_pm/memhp",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .needed = vmstate_test_use_memhp,
>      .fields      = (VMStateField[]) {
>          VMSTATE_MEMORY_HOTPLUG(acpi_memory_hotplug, ICH9LPCPMRegs),
> @@ -181,7 +180,6 @@ static const VMStateDescription vmstate_tco_io_state = {
>      .name = "ich9_pm/tco",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .needed = vmstate_test_use_tco,
>      .fields      = (VMStateField[]) {
>          VMSTATE_STRUCT(tco_regs, ICH9LPCPMRegs, 1, vmstate_tco_io_sts,
> @@ -208,7 +206,6 @@ static const VMStateDescription vmstate_cpuhp_state = {
>      .name = "ich9_pm/cpuhp",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .needed = vmstate_test_use_cpuhp,
>      .pre_load = vmstate_cpuhp_pre_load,
>      .fields      = (VMStateField[]) {
> diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
> index d0fffcf7870..a581a2183b2 100644
> --- a/hw/acpi/memory_hotplug.c
> +++ b/hw/acpi/memory_hotplug.c
> @@ -318,7 +318,6 @@ static const VMStateDescription vmstate_memhp_sts = {
>      .name = "memory hotplug device state",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields      = (VMStateField[]) {
>          VMSTATE_BOOL(is_enabled, MemStatus),
>          VMSTATE_BOOL(is_inserting, MemStatus),
> @@ -332,7 +331,6 @@ const VMStateDescription vmstate_memory_hotplug = {
>      .name = "memory hotplug state",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields      = (VMStateField[]) {
>          VMSTATE_UINT32(selector, MemHotplugState),
>          VMSTATE_STRUCT_VARRAY_POINTER_UINT32(devs, MemHotplugState, dev_count,
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index f0b5fac44a1..cc37fa34168 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -230,7 +230,6 @@ static const VMStateDescription vmstate_memhp_state = {
>      .name = "piix4_pm/memhp",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .needed = vmstate_test_use_memhp,
>      .fields      = (VMStateField[]) {
>          VMSTATE_MEMORY_HOTPLUG(acpi_memory_hotplug, PIIX4PMState),
> @@ -255,7 +254,6 @@ static const VMStateDescription vmstate_cpuhp_state = {
>      .name = "piix4_pm/cpuhp",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .needed = vmstate_test_use_cpuhp,
>      .pre_load = vmstate_cpuhp_pre_load,
>      .fields      = (VMStateField[]) {
> diff --git a/hw/acpi/tco.c b/hw/acpi/tco.c
> index cf1e68a5393..4783721e4e7 100644
> --- a/hw/acpi/tco.c
> +++ b/hw/acpi/tco.c
> @@ -239,7 +239,6 @@ const VMStateDescription vmstate_tco_io_sts = {
>      .name = "tco io device status",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields      = (VMStateField[]) {
>          VMSTATE_UINT16(tco.rld, TCOIORegs),
>          VMSTATE_UINT8(tco.din, TCOIORegs),
> diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c
> index b056c05387c..dfc7ebca4e1 100644
> --- a/hw/audio/pcspk.c
> +++ b/hw/audio/pcspk.c
> @@ -209,7 +209,6 @@ static const VMStateDescription vmstate_spk = {
>      .name = "pcspk",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .needed = migrate_needed,
>      .fields      = (VMStateField[]) {
>          VMSTATE_UINT8(data_on, PCSpkState),
> diff --git a/hw/display/macfb.c b/hw/display/macfb.c
> index 4bd7c3ad6a5..2eeb80cc3f0 100644
> --- a/hw/display/macfb.c
> +++ b/hw/display/macfb.c
> @@ -616,7 +616,6 @@ static const VMStateDescription vmstate_macfb = {
>      .name = "macfb",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .post_load = macfb_post_load,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT8_ARRAY(color_palette, MacfbState, 256 * 3),
> diff --git a/hw/dma/xlnx-zdma.c b/hw/dma/xlnx-zdma.c
> index a5a92b4ff8c..4eb7f66e9f8 100644
> --- a/hw/dma/xlnx-zdma.c
> +++ b/hw/dma/xlnx-zdma.c
> @@ -806,7 +806,6 @@ static const VMStateDescription vmstate_zdma = {
>      .name = TYPE_XLNX_ZDMA,
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT32_ARRAY(regs, XlnxZDMA, ZDMA_R_MAX),
>          VMSTATE_UINT32(state, XlnxZDMA),
> diff --git a/hw/dma/xlnx_csu_dma.c b/hw/dma/xlnx_csu_dma.c
> index 896bb3574dd..5b62a2f74f7 100644
> --- a/hw/dma/xlnx_csu_dma.c
> +++ b/hw/dma/xlnx_csu_dma.c
> @@ -663,7 +663,6 @@ static const VMStateDescription vmstate_xlnx_csu_dma = {
>      .name = TYPE_XLNX_CSU_DMA,
>      .version_id = 0,
>      .minimum_version_id = 0,
> -    .minimum_version_id_old = 0,
>      .fields = (VMStateField[]) {
>          VMSTATE_PTIMER(src_timer, XlnxCSUDMA),
>          VMSTATE_UINT16(width, XlnxCSUDMA),
> diff --git a/hw/gpio/imx_gpio.c b/hw/gpio/imx_gpio.c
> index 7a591804a99..c7f98b7bb15 100644
> --- a/hw/gpio/imx_gpio.c
> +++ b/hw/gpio/imx_gpio.c
> @@ -277,7 +277,6 @@ static const VMStateDescription vmstate_imx_gpio = {
>      .name = TYPE_IMX_GPIO,
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT32(dr, IMXGPIOState),
>          VMSTATE_UINT32(gdir, IMXGPIOState),
> diff --git a/hw/misc/bcm2835_mbox.c b/hw/misc/bcm2835_mbox.c
> index 9f73cbd5e41..04e53c98282 100644
> --- a/hw/misc/bcm2835_mbox.c
> +++ b/hw/misc/bcm2835_mbox.c
> @@ -271,7 +271,6 @@ static const VMStateDescription vmstate_bcm2835_mbox = {
>      .name = TYPE_BCM2835_MBOX,
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields      = (VMStateField[]) {
>          VMSTATE_BOOL_ARRAY(available, BCM2835MboxState, MBOX_CHAN_COUNT),
>          VMSTATE_STRUCT_ARRAY(mbox, BCM2835MboxState, 2, 1,
> diff --git a/hw/net/can/can_kvaser_pci.c b/hw/net/can/can_kvaser_pci.c
> index 168b3a620d9..94b3a534f84 100644
> --- a/hw/net/can/can_kvaser_pci.c
> +++ b/hw/net/can/can_kvaser_pci.c
> @@ -266,7 +266,6 @@ static const VMStateDescription vmstate_kvaser_pci = {
>      .name = "kvaser_pci",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_PCI_DEVICE(dev, KvaserPCIState),
>          /* Load this before sja_state.  */
> diff --git a/hw/net/can/can_mioe3680_pci.c b/hw/net/can/can_mioe3680_pci.c
> index 7a79e2605ae..29dc696f7c8 100644
> --- a/hw/net/can/can_mioe3680_pci.c
> +++ b/hw/net/can/can_mioe3680_pci.c
> @@ -203,7 +203,6 @@ static const VMStateDescription vmstate_mioe3680_pci = {
>      .name = "mioe3680_pci",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_PCI_DEVICE(dev, Mioe3680PCIState),
>          VMSTATE_STRUCT(sja_state[0], Mioe3680PCIState, 0, vmstate_can_sja,
> diff --git a/hw/net/can/can_pcm3680_pci.c b/hw/net/can/can_pcm3680_pci.c
> index 8ef4e74af02..e8e57f4f33e 100644
> --- a/hw/net/can/can_pcm3680_pci.c
> +++ b/hw/net/can/can_pcm3680_pci.c
> @@ -204,7 +204,6 @@ static const VMStateDescription vmstate_pcm3680i_pci = {
>      .name = "pcm3680i_pci",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_PCI_DEVICE(dev, Pcm3680iPCIState),
>          VMSTATE_STRUCT(sja_state[0], Pcm3680iPCIState, 0,
> diff --git a/hw/net/can/can_sja1000.c b/hw/net/can/can_sja1000.c
> index 34eea684ced..3ba803e947d 100644
> --- a/hw/net/can/can_sja1000.c
> +++ b/hw/net/can/can_sja1000.c
> @@ -928,7 +928,6 @@ const VMStateDescription vmstate_qemu_can_filter = {
>      .name = "qemu_can_filter",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT32(can_id, qemu_can_filter),
>          VMSTATE_UINT32(can_mask, qemu_can_filter),
> @@ -952,7 +951,6 @@ const VMStateDescription vmstate_can_sja = {
>      .name = "can_sja",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .post_load = can_sja_post_load,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT8(mode, CanSJA1000State),
> diff --git a/hw/net/can/ctucan_core.c b/hw/net/can/ctucan_core.c
> index d171c372e00..f2c3b6a7061 100644
> --- a/hw/net/can/ctucan_core.c
> +++ b/hw/net/can/ctucan_core.c
> @@ -617,7 +617,6 @@ const VMStateDescription vmstate_qemu_ctucan_tx_buffer = {
>      .name = "qemu_ctucan_tx_buffer",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT8_ARRAY(data, CtuCanCoreMsgBuffer, CTUCAN_CORE_MSG_MAX_LEN),
>          VMSTATE_END_OF_LIST()
> @@ -636,7 +635,6 @@ const VMStateDescription vmstate_ctucan = {
>      .name = "ctucan",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .post_load = ctucan_post_load,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT32(mode_settings.u32, CtuCanCoreState),
> diff --git a/hw/net/can/ctucan_pci.c b/hw/net/can/ctucan_pci.c
> index f1c86cd06a7..50f4ea6cd63 100644
> --- a/hw/net/can/ctucan_pci.c
> +++ b/hw/net/can/ctucan_pci.c
> @@ -215,7 +215,6 @@ static const VMStateDescription vmstate_ctucan_pci = {
>      .name = "ctucan_pci",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_PCI_DEVICE(dev, CtuCanPCIState),
>          VMSTATE_STRUCT(ctucan_state[0], CtuCanPCIState, 0, vmstate_ctucan,
> diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
> index bb5bee9a338..462c87dba8b 100644
> --- a/hw/ppc/ppc.c
> +++ b/hw/ppc/ppc.c
> @@ -1049,7 +1049,6 @@ const VMStateDescription vmstate_ppc_timebase = {
>      .name = "timebase",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .pre_save = timebase_pre_save,
>      .fields      = (VMStateField []) {
>          VMSTATE_UINT64(guest_timebase, PPCTimebase),
> diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
> index dc9bbdb740e..1a72e52396a 100644
> --- a/hw/scsi/megasas.c
> +++ b/hw/scsi/megasas.c
> @@ -2293,7 +2293,6 @@ static const VMStateDescription vmstate_megasas_gen2 = {
>      .name = "megasas-gen2",
>      .version_id = 0,
>      .minimum_version_id = 0,
> -    .minimum_version_id_old = 0,
>      .fields      = (VMStateField[]) {
>          VMSTATE_PCI_DEVICE(parent_obj, MegasasState),
>          VMSTATE_MSIX(parent_obj, MegasasState),
> diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
> index 5181b0c0b0d..706cf0df3a1 100644
> --- a/hw/scsi/mptsas.c
> +++ b/hw/scsi/mptsas.c
> @@ -1363,7 +1363,6 @@ static const VMStateDescription vmstate_mptsas = {
>      .name = "mptsas",
>      .version_id = 0,
>      .minimum_version_id = 0,
> -    .minimum_version_id_old = 0,
>      .post_load = mptsas_post_load,
>      .fields      = (VMStateField[]) {
>          VMSTATE_PCI_DEVICE(dev, MPTSASState),
> diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
> index 72da12fea59..688eccda94d 100644
> --- a/hw/virtio/virtio-mmio.c
> +++ b/hw/virtio/virtio-mmio.c
> @@ -592,7 +592,6 @@ static const VMStateDescription vmstate_virtio_mmio = {
>      .name = "virtio_mmio",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_END_OF_LIST()
>      },
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 750aa47ec14..f9cf9592fdf 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -131,7 +131,6 @@ static const VMStateDescription vmstate_virtio_pci = {
>      .name = "virtio_pci",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_END_OF_LIST()
>      },
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index aae72fb8b73..9e8f51dfb03 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -2808,7 +2808,6 @@ static const VMStateDescription vmstate_virtio = {
>      .name = "virtio",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_END_OF_LIST()
>      },
> diff --git a/target/openrisc/machine.c b/target/openrisc/machine.c
> index 6239725c4f5..b7d73886401 100644
> --- a/target/openrisc/machine.c
> +++ b/target/openrisc/machine.c
> @@ -25,7 +25,6 @@ static const VMStateDescription vmstate_tlb_entry = {
>      .name = "tlb_entry",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINTTL(mr, OpenRISCTLBEntry),
>          VMSTATE_UINTTL(tr, OpenRISCTLBEntry),
> diff --git a/target/ppc/machine.c b/target/ppc/machine.c
> index 756d8de5d8d..a46aa96e9d8 100644
> --- a/target/ppc/machine.c
> +++ b/target/ppc/machine.c
> @@ -532,7 +532,6 @@ static const VMStateDescription vmstate_tm = {
>      .name = "cpu/tm",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .needed = tm_needed,
>      .fields      = (VMStateField []) {
>          VMSTATE_UINTTL_ARRAY(env.tm_gpr, PowerPCCPU, 32),
> diff --git a/target/sparc/machine.c b/target/sparc/machine.c
> index 917375c3a17..44b9e7d75d6 100644
> --- a/target/sparc/machine.c
> +++ b/target/sparc/machine.c
> @@ -10,7 +10,6 @@ static const VMStateDescription vmstate_cpu_timer = {
>      .name = "cpu_timer",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT32(frequency, CPUTimer),
>          VMSTATE_UINT32(disabled, CPUTimer),
> @@ -30,7 +29,6 @@ static const VMStateDescription vmstate_trap_state = {
>      .name = "trap_state",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT64(tpc, trap_state),
>          VMSTATE_UINT64(tnpc, trap_state),
> @@ -44,7 +42,6 @@ static const VMStateDescription vmstate_tlb_entry = {
>      .name = "tlb_entry",
>      .version_id = 1,
>      .minimum_version_id = 1,
> -    .minimum_version_id_old = 1,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINT64(tag, SparcTLBEntry),
>          VMSTATE_UINT64(tte, SparcTLBEntry),
> @@ -113,7 +110,6 @@ const VMStateDescription vmstate_sparc_cpu = {
>      .name = "cpu",
>      .version_id = SPARC_VMSTATE_VER,
>      .minimum_version_id = SPARC_VMSTATE_VER,
> -    .minimum_version_id_old = SPARC_VMSTATE_VER,
>      .pre_save = cpu_pre_save,
>      .fields = (VMStateField[]) {
>          VMSTATE_UINTTL_ARRAY(env.gregs, SPARCCPU, 8),
> -- 
> 2.25.1
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK


Re: [PATCH] Remove unnecessary minimum_version_id_old fields
Posted by Juan Quintela 2 years, 2 months ago
Peter Maydell <peter.maydell@linaro.org> wrote:
> The migration code will not look at a VMStateDescription's
> minimum_version_id_old field unless that VMSD has set the
> load_state_old field to something non-NULL.  (The purpose of
> minimum_version_id_old is to specify what migration version is needed
> for the code in the function pointed to by load_state_old to be able
> to handle it on incoming migration.)
>
> We have exactly one VMSD which still has a load_state_old,
> in the PPC CPU; every other VMSD which sets minimum_version_id_old
> is doing so unnecessarily. Delete all the unnecessary ones.
>
> Commit created with:
>   sed -i '/\.minimum_version_id_old/d' $(git grep -l '\.minimum_version_id_old')
> with the one legitimate use then hand-edited back in.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

queued.


Re: [PATCH] Remove unnecessary minimum_version_id_old fields
Posted by Juan Quintela 2 years, 2 months ago
Peter Maydell <peter.maydell@linaro.org> wrote:
> The migration code will not look at a VMStateDescription's
> minimum_version_id_old field unless that VMSD has set the
> load_state_old field to something non-NULL.  (The purpose of
> minimum_version_id_old is to specify what migration version is needed
> for the code in the function pointed to by load_state_old to be able
> to handle it on incoming migration.)
>
> We have exactly one VMSD which still has a load_state_old,
> in the PPC CPU; every other VMSD which sets minimum_version_id_old
> is doing so unnecessarily. Delete all the unnecessary ones.
>
> Commit created with:
>   sed -i '/\.minimum_version_id_old/d' $(git grep -l '\.minimum_version_id_old')
> with the one legitimate use then hand-edited back in.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Hi

Should this came through the migration tree?


Reviewed-by: Juan Quintela <quintela@redhat.com>

Later, Juan.


Re: [PATCH] Remove unnecessary minimum_version_id_old fields
Posted by Peter Maydell 2 years, 2 months ago
On Tue, 25 Jan 2022 at 08:27, Juan Quintela <quintela@redhat.com> wrote:
>
> Peter Maydell <peter.maydell@linaro.org> wrote:
> > The migration code will not look at a VMStateDescription's
> > minimum_version_id_old field unless that VMSD has set the
> > load_state_old field to something non-NULL.  (The purpose of
> > minimum_version_id_old is to specify what migration version is needed
> > for the code in the function pointed to by load_state_old to be able
> > to handle it on incoming migration.)
> >
> > We have exactly one VMSD which still has a load_state_old,
> > in the PPC CPU; every other VMSD which sets minimum_version_id_old
> > is doing so unnecessarily. Delete all the unnecessary ones.
> >
> > Commit created with:
> >   sed -i '/\.minimum_version_id_old/d' $(git grep -l '\.minimum_version_id_old')
> > with the one legitimate use then hand-edited back in.
> >
> > Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>
> Hi
>
> Should this came through the migration tree?

That seems like a good way to take it into the tree, yes.

thanks
-- PMM