diff options
| author | Corey Minyard <corey@minyard.net> | 2025-04-04 10:47:07 -0500 |
|---|---|---|
| committer | Corey Minyard <corey@minyard.net> | 2025-04-11 10:50:01 -0500 |
| commit | d11d904c81a202c7bfb5b18f4ee248eb2fc9174f (patch) | |
| tree | 9480bfa745a3a3d6e60ac00e82cdff89348cfeb5 /hw/ipmi/isa_ipmi_kcs.c | |
| parent | 56c6e249b6988c1b6edc2dd34ebb0f1e570a1365 (diff) | |
| download | focaccia-qemu-d11d904c81a202c7bfb5b18f4ee248eb2fc9174f.tar.gz focaccia-qemu-d11d904c81a202c7bfb5b18f4ee248eb2fc9174f.zip | |
hw/ipmi: Move vmsd registration to device class
It's the right way to do it now, and it handles multiple instances properly. I need multiple instances for some testing I'm doing so this is the right thing to do. Tested by doing: (qemu) migrate -d exec:cat>filen.mig before and after the fix, then: scripts/analyze-migration.py -d desc -f file1.mig >file1.json scripts/analyze-migration.py -d desc -f file2.mig >file2.json diff file1.json file2.json with no differences. Signed-off-by: Corey Minyard <corey@minyard.net> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Fabiano Rosas <farosas@suse.de>
Diffstat (limited to 'hw/ipmi/isa_ipmi_kcs.c')
| -rw-r--r-- | hw/ipmi/isa_ipmi_kcs.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/hw/ipmi/isa_ipmi_kcs.c b/hw/ipmi/isa_ipmi_kcs.c index d9ebdd5371..94bbe45d35 100644 --- a/hw/ipmi/isa_ipmi_kcs.c +++ b/hw/ipmi/isa_ipmi_kcs.c @@ -72,6 +72,10 @@ static bool vmstate_kcs_before_version2(void *opaque, int version) return version <= 1; } +/* + * Version 1 had an incorrect name, it clashed with the BT IPMI + * device, so receive it, but transmit a different version. + */ static const VMStateDescription vmstate_ISAIPMIKCSDevice = { .name = TYPE_IPMI_INTERFACE, .version_id = 2, @@ -119,13 +123,6 @@ static void ipmi_isa_realize(DeviceState *dev, Error **errp) qdev_set_legacy_instance_id(dev, iik->kcs.io_base, iik->kcs.io_length); isa_register_ioport(isadev, &iik->kcs.io, iik->kcs.io_base); - - /* - * Version 1 had an incorrect name, it clashed with the BT - * IPMI device, so receive it, but transmit a different - * version. - */ - vmstate_register(NULL, 0, &vmstate_ISAIPMIKCSDevice, iik); } static void isa_ipmi_kcs_init(Object *obj) @@ -154,6 +151,7 @@ static void isa_ipmi_kcs_class_init(ObjectClass *oc, void *data) AcpiDevAmlIfClass *adevc = ACPI_DEV_AML_IF_CLASS(oc); dc->realize = ipmi_isa_realize; + dc->vmsd = &vmstate_ISAIPMIKCSDevice; device_class_set_props(dc, ipmi_isa_properties); iic->get_backend_data = isa_ipmi_kcs_get_backend_data; |