summaryrefslogtreecommitdiff
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),