summary refs log tree commit diff stats
path: root/hw/serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/serial.c')
-rw-r--r--hw/serial.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/hw/serial.c b/hw/serial.c
index 869063cb3e..86ac543ecd 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -649,17 +649,13 @@ static void serial_pre_save(void *opaque)
     s->fcr_vmstate = s->fcr;
 }
 
-static int serial_pre_load(void *opaque)
-{
-    SerialState *s = opaque;
-    s->fcr_vmstate = 0;
-    return 0;
-}
-
 static int serial_post_load(void *opaque, int version_id)
 {
     SerialState *s = opaque;
 
+    if (version_id < 3) {
+        s->fcr_vmstate = 0;
+    }
     /* Initialize fcr via setter to perform essential side-effects */
     serial_ioport_write(s, 0x02, s->fcr_vmstate);
     return 0;
@@ -670,7 +666,6 @@ static const VMStateDescription vmstate_serial = {
     .version_id = 3,
     .minimum_version_id = 2,
     .pre_save = serial_pre_save,
-    .pre_load = serial_pre_load,
     .post_load = serial_post_load,
     .fields      = (VMStateField []) {
         VMSTATE_UINT16_V(divider, SerialState, 2),