@samitouri / QOSamiQemu / commits / 373ce34a56

migration: drop VMStateField.err_hint

The field is unused, all users of VMSTATE_*_EQUAL pass _err_hint=NULL. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Acked-by: Eric Farman <farman@linux.ibm.com> # s390 Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Reviewed-by: Peter Xu <peterx@redhat.com> Link: https://lore.kernel.org/qemu-devel/20260304212303.667141-18-vsementsov@yandex-team.ru Signed-off-by: Fabiano Rosas <farosas@suse.de>

Vladimir Sementsov-Ogievskiy committed Mar 5, 2026 at 00:23 UTC 373ce34a56a76dd7acaf5a7d1344df5b8c809ca9
22 files changed +44 -61
hw/block/fdc.c
+1 -1
@@ -1051,7 +1051,7 @@ const VMStateDescription vmstate_fdc = {
1051 VMSTATE_UINT8(config, FDCtrl),
1052 VMSTATE_UINT8(lock, FDCtrl),
1053 VMSTATE_UINT8(pwrd, FDCtrl),
1054 - VMSTATE_UINT8_EQUAL(num_floppies, FDCtrl, NULL),
1054 + VMSTATE_UINT8_EQUAL(num_floppies, FDCtrl),
1055 VMSTATE_STRUCT_ARRAY(drives, FDCtrl, MAX_FD, 1,
1056 vmstate_fdrive, FDrive),
1057 VMSTATE_END_OF_LIST()
hw/display/qxl.c
+2 -2
@@ -2442,12 +2442,12 @@ static const VMStateDescription qxl_vmstate = {
2442 VMSTATE_UINT32(last_release_offset, PCIQXLDevice),
2443 VMSTATE_UINT32(mode, PCIQXLDevice),
2444 VMSTATE_UINT32(ssd.unique, PCIQXLDevice),
2445 - VMSTATE_INT32_EQUAL(num_memslots, PCIQXLDevice, NULL),
2445 + VMSTATE_INT32_EQUAL(num_memslots, PCIQXLDevice),
2446 VMSTATE_STRUCT_ARRAY(guest_slots, PCIQXLDevice, NUM_MEMSLOTS, 0,
2447 qxl_memslot, struct guest_slots),
2448 VMSTATE_STRUCT(guest_primary.surface, PCIQXLDevice, 0,
2449 qxl_surface, QXLSurfaceCreate),
2450 - VMSTATE_INT32_EQUAL(ssd.num_surfaces, PCIQXLDevice, NULL),
2450 + VMSTATE_INT32_EQUAL(ssd.num_surfaces, PCIQXLDevice),
2451 VMSTATE_VARRAY_INT32(guest_surfaces.cmds, PCIQXLDevice,
2452 ssd.num_surfaces, 0,
2453 vmstate_info_uint64, uint64_t),
hw/display/vga.c
+1 -1
@@ -2160,7 +2160,7 @@ const VMStateDescription vmstate_vga_common = {
2160 VMSTATE_BUFFER(palette, VGACommonState),
2161
2162 VMSTATE_INT32(bank_offset, VGACommonState),
2163 - VMSTATE_UINT8_EQUAL(is_vbe_vmstate, VGACommonState, NULL),
2163 + VMSTATE_UINT8_EQUAL(is_vbe_vmstate, VGACommonState),
2164 VMSTATE_UINT16(vbe_index, VGACommonState),
2165 VMSTATE_UINT16_ARRAY(vbe_regs, VGACommonState, VBE_DISPI_INDEX_NB),
2166 VMSTATE_UINT32(vbe_start_addr, VGACommonState),
hw/display/virtio-gpu.c
+1 -1
@@ -1223,7 +1223,7 @@ static const VMStateDescription vmstate_virtio_gpu_scanouts = {
1223 .fields = (const VMStateField[]) {
1224 VMSTATE_INT32(parent_obj.enable, struct VirtIOGPU),
1225 VMSTATE_UINT32_EQUAL(parent_obj.conf.max_outputs,
1226 - struct VirtIOGPU, NULL),
1226 + struct VirtIOGPU),
1227 VMSTATE_STRUCT_VARRAY_UINT32(parent_obj.scanout, struct VirtIOGPU,
1228 parent_obj.conf.max_outputs, 1,
1229 vmstate_virtio_gpu_scanout,
hw/display/vmware_vga.c
+1 -1
@@ -1209,7 +1209,7 @@ static const VMStateDescription vmstate_vmware_vga_internal = {
1209 .minimum_version_id = 0,
1210 .post_load = vmsvga_post_load,
1211 .fields = (const VMStateField[]) {
1212 - VMSTATE_INT32_EQUAL(new_depth, struct vmsvga_state_s, NULL),
1212 + VMSTATE_INT32_EQUAL(new_depth, struct vmsvga_state_s),
1213 VMSTATE_INT32(enable, struct vmsvga_state_s),
1214 VMSTATE_INT32(config, struct vmsvga_state_s),
1215 VMSTATE_INT32(cursor.id, struct vmsvga_state_s),
hw/i386/vmmouse.c
+1 -1
@@ -278,7 +278,7 @@ static const VMStateDescription vmstate_vmmouse = {
278 .minimum_version_id = 0,
279 .post_load = vmmouse_post_load,
280 .fields = (const VMStateField[]) {
281 - VMSTATE_INT32_EQUAL(queue_size, VMMouseState, NULL),
281 + VMSTATE_INT32_EQUAL(queue_size, VMMouseState),
282 VMSTATE_UINT32_ARRAY(queue, VMMouseState, VMMOUSE_QUEUE_SIZE),
283 VMSTATE_UINT16(nb_queue, VMMouseState),
284 VMSTATE_UINT16(status, VMMouseState),
hw/ide/ahci.c
+1 -1
@@ -1795,7 +1795,7 @@ const VMStateDescription vmstate_ahci = {
1795 VMSTATE_UINT32(control_regs.impl, AHCIState),
1796 VMSTATE_UINT32(control_regs.version, AHCIState),
1797 VMSTATE_UINT32(idp_index, AHCIState),
1798 - VMSTATE_UINT32_EQUAL(ports, AHCIState, NULL),
1798 + VMSTATE_UINT32_EQUAL(ports, AHCIState),
1799 VMSTATE_END_OF_LIST()
1800 },
1801 };
hw/intc/openpic.c
+1 -1
@@ -1477,7 +1477,7 @@ static const VMStateDescription vmstate_openpic = {
1477 VMSTATE_UINT32(max_irq, OpenPICState),
1478 VMSTATE_STRUCT_VARRAY_UINT32(src, OpenPICState, max_irq, 0,
1479 vmstate_openpic_irqsource, IRQSource),
1480 - VMSTATE_UINT32_EQUAL(nb_cpus, OpenPICState, NULL),
1480 + VMSTATE_UINT32_EQUAL(nb_cpus, OpenPICState),
1481 VMSTATE_STRUCT_VARRAY_UINT32(dst, OpenPICState, nb_cpus, 0,
1482 vmstate_openpic_irqdest, IRQDest),
1483 VMSTATE_STRUCT_ARRAY(timers, OpenPICState, OPENPIC_MAX_TMR, 0,
hw/intc/spapr_xive.c
+1 -1
@@ -578,7 +578,7 @@ static const VMStateDescription vmstate_spapr_xive = {
578 .pre_save = vmstate_spapr_xive_pre_save,
579 .post_load = NULL, /* handled at the machine level */
580 .fields = (const VMStateField[]) {
581 - VMSTATE_UINT32_EQUAL(nr_irqs, SpaprXive, NULL),
581 + VMSTATE_UINT32_EQUAL(nr_irqs, SpaprXive),
582 VMSTATE_STRUCT_VARRAY_POINTER_UINT32(eat, SpaprXive, nr_irqs,
583 vmstate_spapr_xive_eas, XiveEAS),
584 VMSTATE_STRUCT_VARRAY_POINTER_UINT32(endt, SpaprXive, nr_ends,
hw/intc/xics.c
+1 -1
@@ -668,7 +668,7 @@ static const VMStateDescription vmstate_ics = {
668 .post_load = ics_post_load,
669 .fields = (const VMStateField[]) {
670 /* Sanity check */
671 - VMSTATE_UINT32_EQUAL(nr_irqs, ICSState, NULL),
671 + VMSTATE_UINT32_EQUAL(nr_irqs, ICSState),
672
673 VMSTATE_STRUCT_VARRAY_POINTER_UINT32(irqs, ICSState, nr_irqs,
674 vmstate_ics_irq,
hw/intc/xive.c
+1 -1
@@ -1565,7 +1565,7 @@ static const VMStateDescription vmstate_xive_source = {
1565 .version_id = 1,
1566 .minimum_version_id = 1,
1567 .fields = (const VMStateField[]) {
1568 - VMSTATE_UINT32_EQUAL(nr_irqs, XiveSource, NULL),
1568 + VMSTATE_UINT32_EQUAL(nr_irqs, XiveSource),
1569 VMSTATE_VBUFFER_UINT32(status, XiveSource, 1, NULL, nr_irqs),
1570 VMSTATE_END_OF_LIST()
1571 },
hw/nvram/eeprom93xx.c
+1 -1
@@ -144,7 +144,7 @@ static const VMStateDescription vmstate_eeprom = {
144 VMSTATE_UINT8(addrbits, eeprom_t),
145 VMSTATE_UINT16_HACK_TEST(size, eeprom_t, is_old_eeprom_version),
146 VMSTATE_UNUSED_TEST(is_old_eeprom_version, 1),
147 - VMSTATE_UINT16_EQUAL_V(size, eeprom_t, EEPROM_VERSION, NULL),
147 + VMSTATE_UINT16_EQUAL_V(size, eeprom_t, EEPROM_VERSION),
148 VMSTATE_UINT16(data, eeprom_t),
149 VMSTATE_VARRAY_UINT16_UNSAFE(contents, eeprom_t, size, 0,
150 vmstate_info_uint16, uint16_t),
hw/pci/pci.c
+1 -1
@@ -105,7 +105,7 @@ static const VMStateDescription vmstate_pcibus = {
105 .version_id = 1,
106 .minimum_version_id = 1,
107 .fields = (const VMStateField[]) {
108 - VMSTATE_INT32_EQUAL(nirq, PCIBus, NULL),
108 + VMSTATE_INT32_EQUAL(nirq, PCIBus),
109 VMSTATE_VARRAY_INT32(irq_count, PCIBus,
110 nirq, 0, vmstate_info_int32,
111 int32_t),
hw/pci/pcie_aer.c
+1 -1
@@ -820,7 +820,7 @@ const VMStateDescription vmstate_pcie_aer_log = {
820 .minimum_version_id = 1,
821 .fields = (const VMStateField[]) {
822 VMSTATE_UINT16(log_num, PCIEAERLog),
823 - VMSTATE_UINT16_EQUAL(log_max, PCIEAERLog, NULL),
823 + VMSTATE_UINT16_EQUAL(log_max, PCIEAERLog),
824 VMSTATE_VALIDATE("log_num <= log_max", pcie_aer_state_log_num_valid),
825 VMSTATE_STRUCT_VARRAY_POINTER_UINT16(log, PCIEAERLog, log_num,
826 vmstate_pcie_aer_err, PCIEAERErr),
hw/ppc/spapr_iommu.c
+1 -1
@@ -285,7 +285,7 @@ static const VMStateDescription vmstate_spapr_tce_table = {
285 .post_load = spapr_tce_table_post_load,
286 .fields = (const VMStateField []) {
287 /* Sanity check */
288 - VMSTATE_UINT32_EQUAL(liobn, SpaprTceTable, NULL),
288 + VMSTATE_UINT32_EQUAL(liobn, SpaprTceTable),
289
290 /* IOMMU state */
291 VMSTATE_UINT32(mig_nb_table, SpaprTceTable),
hw/ppc/spapr_pci.c
+2 -2
@@ -2051,7 +2051,7 @@ static const VMStateDescription vmstate_spapr_pci_lsi = {
2051 .version_id = 1,
2052 .minimum_version_id = 1,
2053 .fields = (const VMStateField[]) {
2054 - VMSTATE_UINT32_EQUAL(irq, SpaprPciLsi, NULL),
2054 + VMSTATE_UINT32_EQUAL(irq, SpaprPciLsi),
2055
2056 VMSTATE_END_OF_LIST()
2057 },
@@ -2129,7 +2129,7 @@ static const VMStateDescription vmstate_spapr_pci = {
2129 .post_save = spapr_pci_post_save,
2130 .post_load = spapr_pci_post_load,
2131 .fields = (const VMStateField[]) {
2132 - VMSTATE_UINT64_EQUAL(buid, SpaprPhbState, NULL),
2132 + VMSTATE_UINT64_EQUAL(buid, SpaprPhbState),
2133 VMSTATE_STRUCT_ARRAY(lsi_table, SpaprPhbState, PCI_NUM_PINS, 0,
2134 vmstate_spapr_pci_lsi, SpaprPciLsi),
2135 VMSTATE_INT32(msi_devs_num, SpaprPhbState),
hw/ppc/spapr_vio.c
+2 -2
@@ -609,8 +609,8 @@ const VMStateDescription vmstate_spapr_vio = {
609 .minimum_version_id = 1,
610 .fields = (const VMStateField[]) {
611 /* Sanity check */
612 - VMSTATE_UINT32_EQUAL(reg, SpaprVioDevice, NULL),
613 - VMSTATE_UINT32_EQUAL(irq, SpaprVioDevice, NULL),
612 + VMSTATE_UINT32_EQUAL(reg, SpaprVioDevice),
613 + VMSTATE_UINT32_EQUAL(irq, SpaprVioDevice),
614
615 /* General VIO device state */
616 VMSTATE_UINT64(signal_state, SpaprVioDevice),
hw/s390x/css.c
+3 -3
@@ -199,15 +199,15 @@ const VMStateDescription vmstate_subch_dev = {
199 .post_load = subch_dev_post_load,
200 .pre_save = subch_dev_pre_save,
201 .fields = (const VMStateField[]) {
202 - VMSTATE_UINT8_EQUAL(cssid, SubchDev, NULL),
203 - VMSTATE_UINT8_EQUAL(ssid, SubchDev, NULL),
202 + VMSTATE_UINT8_EQUAL(cssid, SubchDev),
203 + VMSTATE_UINT8_EQUAL(ssid, SubchDev),
204 VMSTATE_UINT16(migrated_schid, SubchDev),
205 /*
206 * If devno mismatch on target, it may be due to some
207 * sequences of plug and unplug breaks migration for
208 * machine versions prior to 2.7 (known design flaw).
209 */
210 - VMSTATE_UINT16_EQUAL(devno, SubchDev, NULL),
210 + VMSTATE_UINT16_EQUAL(devno, SubchDev),
211 VMSTATE_BOOL(thinint_active, SubchDev),
212 VMSTATE_STRUCT(curr_status, SubchDev, 0, vmstate_schib, SCHIB),
213 VMSTATE_UINT8_ARRAY(sense_data, SubchDev, 32),
hw/usb/hcd-uhci.c
+1 -1
@@ -364,7 +364,7 @@ static const VMStateDescription vmstate_uhci = {
364 .post_load = uhci_post_load,
365 .fields = (const VMStateField[]) {
366 VMSTATE_PCI_DEVICE(dev, UHCIState),
367 - VMSTATE_UINT8_EQUAL(num_ports_vmstate, UHCIState, NULL),
367 + VMSTATE_UINT8_EQUAL(num_ports_vmstate, UHCIState),
368 VMSTATE_STRUCT_ARRAY(ports, UHCIState, UHCI_PORTS, 1,
369 vmstate_uhci_port, UHCIPort),
370 VMSTATE_UINT16(cmd, UHCIState),
include/migration/vmstate.h
+17 -19
@@ -182,7 +182,6 @@ typedef enum {
182
183 struct VMStateField {
184 const char *name;
185 - const char *err_hint;
185 size_t offset;
186 size_t size;
187 size_t start;
@@ -358,9 +357,8 @@ extern const VMStateInfo vmstate_info_qlist;
357 }
358
359 #define VMSTATE_SINGLE_FULL(_field, _state, _test, _version, _info, \
361 - _type, _err_hint) { \
360 + _type) { \
361 .name = (stringify(_field)), \
363 - .err_hint = (_err_hint), \
362 .version_id = (_version), \
363 .field_exists = (_test), \
364 .size = sizeof(_type), \
@@ -1022,35 +1020,35 @@ extern const VMStateInfo vmstate_info_qlist;
1020
1021 #endif
1022
1025 -#define VMSTATE_UINT8_EQUAL(_f, _s, _err_hint) \
1023 +#define VMSTATE_UINT8_EQUAL(_f, _s) \
1024 VMSTATE_SINGLE_FULL(_f, _s, 0, 0, \
1027 - vmstate_info_uint8_equal, uint8_t, _err_hint)
1025 + vmstate_info_uint8_equal, uint8_t)
1026
1029 -#define VMSTATE_UINT16_EQUAL(_f, _s, _err_hint) \
1027 +#define VMSTATE_UINT16_EQUAL(_f, _s) \
1028 VMSTATE_SINGLE_FULL(_f, _s, 0, 0, \
1031 - vmstate_info_uint16_equal, uint16_t, _err_hint)
1029 + vmstate_info_uint16_equal, uint16_t)
1030
1033 -#define VMSTATE_UINT16_EQUAL_V(_f, _s, _v, _err_hint) \
1031 +#define VMSTATE_UINT16_EQUAL_V(_f, _s, _v) \
1032 VMSTATE_SINGLE_FULL(_f, _s, 0, _v, \
1035 - vmstate_info_uint16_equal, uint16_t, _err_hint)
1033 + vmstate_info_uint16_equal, uint16_t)
1034
1037 -#define VMSTATE_INT32_EQUAL(_f, _s, _err_hint) \
1035 +#define VMSTATE_INT32_EQUAL(_f, _s) \
1036 VMSTATE_SINGLE_FULL(_f, _s, 0, 0, \
1039 - vmstate_info_int32_equal, int32_t, _err_hint)
1037 + vmstate_info_int32_equal, int32_t)
1038
1041 -#define VMSTATE_UINT32_EQUAL_V(_f, _s, _v, _err_hint) \
1039 +#define VMSTATE_UINT32_EQUAL_V(_f, _s, _v) \
1040 VMSTATE_SINGLE_FULL(_f, _s, 0, _v, \
1043 - vmstate_info_uint32_equal, uint32_t, _err_hint)
1041 + vmstate_info_uint32_equal, uint32_t)
1042
1045 -#define VMSTATE_UINT32_EQUAL(_f, _s, _err_hint) \
1046 - VMSTATE_UINT32_EQUAL_V(_f, _s, 0, _err_hint)
1043 +#define VMSTATE_UINT32_EQUAL(_f, _s) \
1044 + VMSTATE_UINT32_EQUAL_V(_f, _s, 0)
1045
1048 -#define VMSTATE_UINT64_EQUAL_V(_f, _s, _v, _err_hint) \
1046 +#define VMSTATE_UINT64_EQUAL_V(_f, _s, _v) \
1047 VMSTATE_SINGLE_FULL(_f, _s, 0, _v, \
1050 - vmstate_info_uint64_equal, uint64_t, _err_hint)
1048 + vmstate_info_uint64_equal, uint64_t)
1049
1052 -#define VMSTATE_UINT64_EQUAL(_f, _s, _err_hint) \
1053 - VMSTATE_UINT64_EQUAL_V(_f, _s, 0, _err_hint)
1050 +#define VMSTATE_UINT64_EQUAL(_f, _s) \
1051 + VMSTATE_UINT64_EQUAL_V(_f, _s, 0)
1052
1053 #define VMSTATE_INT32_POSITIVE_LE(_f, _s) \
1054 VMSTATE_SINGLE(_f, _s, 0, vmstate_info_int32_le, int32_t)
migration/vmstate-types.c
-15
@@ -131,9 +131,6 @@ static int get_int32_equal(QEMUFile *f, void *pv, size_t size,
131 return 0;
132 }
133 error_report("%" PRIx32 " != %" PRIx32, *v, v2);
134 - if (field->err_hint) {
135 - error_printf("%s\n", field->err_hint);
136 - }
134 return -EINVAL;
135 }
136
@@ -280,9 +277,6 @@ static int get_uint32_equal(QEMUFile *f, void *pv, size_t size,
277 return 0;
278 }
279 error_report("%" PRIx32 " != %" PRIx32, *v, v2);
283 - if (field->err_hint) {
284 - error_printf("%s\n", field->err_hint);
285 - }
280 return -EINVAL;
281 }
282
@@ -391,9 +385,6 @@ static int get_uint64_equal(QEMUFile *f, void *pv, size_t size,
385 return 0;
386 }
387 error_report("%" PRIx64 " != %" PRIx64, *v, v2);
394 - if (field->err_hint) {
395 - error_printf("%s\n", field->err_hint);
396 - }
388 return -EINVAL;
389 }
390
@@ -417,9 +408,6 @@ static int get_uint8_equal(QEMUFile *f, void *pv, size_t size,
408 return 0;
409 }
410 error_report("%x != %x", *v, v2);
420 - if (field->err_hint) {
421 - error_printf("%s\n", field->err_hint);
422 - }
411 return -EINVAL;
412 }
413
@@ -443,9 +431,6 @@ static int get_uint16_equal(QEMUFile *f, void *pv, size_t size,
431 return 0;
432 }
433 error_report("%x != %x", *v, v2);
446 - if (field->err_hint) {
447 - error_printf("%s\n", field->err_hint);
448 - }
434 return -EINVAL;
435 }
436
target/ppc/machine.c
+3 -3
@@ -564,7 +564,7 @@ static const VMStateDescription vmstate_tlb6xx = {
564 .minimum_version_id = 1,
565 .needed = tlb6xx_needed,
566 .fields = (const VMStateField[]) {
567 - VMSTATE_INT32_EQUAL(env.nb_tlb, PowerPCCPU, NULL),
567 + VMSTATE_INT32_EQUAL(env.nb_tlb, PowerPCCPU),
568 VMSTATE_STRUCT_VARRAY_POINTER_INT32(env.tlb.tlb6, PowerPCCPU,
569 env.nb_tlb,
570 vmstate_tlb6xx_entry,
@@ -603,7 +603,7 @@ static const VMStateDescription vmstate_tlbemb = {
603 .minimum_version_id = 1,
604 .needed = tlbemb_needed,
605 .fields = (const VMStateField[]) {
606 - VMSTATE_INT32_EQUAL(env.nb_tlb, PowerPCCPU, NULL),
606 + VMSTATE_INT32_EQUAL(env.nb_tlb, PowerPCCPU),
607 VMSTATE_STRUCT_VARRAY_POINTER_INT32(env.tlb.tlbe, PowerPCCPU,
608 env.nb_tlb,
609 vmstate_tlbemb_entry,
@@ -639,7 +639,7 @@ static const VMStateDescription vmstate_tlbmas = {
639 .minimum_version_id = 1,
640 .needed = tlbmas_needed,
641 .fields = (const VMStateField[]) {
642 - VMSTATE_INT32_EQUAL(env.nb_tlb, PowerPCCPU, NULL),
642 + VMSTATE_INT32_EQUAL(env.nb_tlb, PowerPCCPU),
643 VMSTATE_STRUCT_VARRAY_POINTER_INT32(env.tlb.tlbm, PowerPCCPU,
644 env.nb_tlb,
645 vmstate_tlbmas_entry,