* Peter Maydell (peter.mayd...@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.mayd...@linaro.org> Reviewed-by: Dr. David Alan Gilbert <dgilb...@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 / dgilb...@redhat.com / Manchester, UK