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,