diff --git a/hw/ps2.c b/hw/ps2.c index fff4d13881..0644e01c49 100644 --- a/hw/ps2.c +++ b/hw/ps2.c @@ -541,19 +541,11 @@ static const VMStateDescription vmstate_ps2_common = { } }; -static int ps2_kbd_load_old(QEMUFile* f, void* opaque, int version_id) +static int ps2_kbd_post_load(void* opaque, int version_id) { PS2KbdState *s = (PS2KbdState*)opaque; - if (version_id != 2 && version_id != 3) - return -EINVAL; - - vmstate_load_state(f, &vmstate_ps2_common, &s->common, version_id); - s->scan_enabled=qemu_get_be32(f); - s->translate=qemu_get_be32(f); - if (version_id == 3) - s->scancode_set=qemu_get_be32(f); - else + if (version_id == 2) s->scancode_set=2; return 0; } @@ -561,9 +553,9 @@ static int ps2_kbd_load_old(QEMUFile* f, void* opaque, int version_id) static const VMStateDescription vmstate_ps2_keyboard = { .name = "ps2kbd", .version_id = 3, - .minimum_version_id = 3, + .minimum_version_id = 2, .minimum_version_id_old = 2, - .load_state_old = ps2_kbd_load_old, + .post_load = ps2_kbd_post_load, .fields = (VMStateField []) { VMSTATE_STRUCT(common, PS2KbdState, 0, vmstate_ps2_common, PS2State), VMSTATE_INT32(scan_enabled, PS2KbdState),