summaryrefslogtreecommitdiff
path: root/hw/block
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dgilbert@redhat.com>2017-09-25 12:29:12 +0100
committerDr. David Alan Gilbert <dgilbert@redhat.com>2017-09-27 11:35:59 +0100
commit44b1ff319c4781c7ab13f7e119b3114a1e6a52e2 (patch)
treeb8e8aa9c74c890808876e7a5969b69ac25c1930a /hw/block
parent9ac78b6171bec47083a9b6ce88dc1f114caea2f9 (diff)
downloadqemu-44b1ff319c4781c7ab13f7e119b3114a1e6a52e2.tar.gz
migration: pre_save return int
Modify the pre_save method on VMStateDescription to return an int rather than void so that it potentially can fail. Changed zillions of devices to make them return 0; the only case I've made it return non-0 is hw/intc/s390_flic_kvm.c that already had an error_report/return case. Note: If you add an error exit in your pre_save you must emit an error_report to say why. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20170925112917.21340-2-dgilbert@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'hw/block')
-rw-r--r--hw/block/fdc.c4
-rw-r--r--hw/block/m25p80.c4
-rw-r--r--hw/block/nand.c4
-rw-r--r--hw/block/onenand.c4
4 files changed, 12 insertions, 4 deletions
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
index 2853cdc205..67f78ac702 100644
--- a/hw/block/fdc.c
+++ b/hw/block/fdc.c
@@ -1101,11 +1101,13 @@ static int reconstruct_phase(FDCtrl *fdctrl)
}
}
-static void fdc_pre_save(void *opaque)
+static int fdc_pre_save(void *opaque)
{
FDCtrl *s = opaque;
s->dor_vmstate = s->dor | GET_CUR_DRV(s);
+
+ return 0;
}
static int fdc_pre_load(void *opaque)
diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c
index 190573cefa..a2438b9ed2 100644
--- a/hw/block/m25p80.c
+++ b/hw/block/m25p80.c
@@ -1251,9 +1251,11 @@ static void m25p80_reset(DeviceState *d)
reset_memory(s);
}
-static void m25p80_pre_save(void *opaque)
+static int m25p80_pre_save(void *opaque)
{
flash_sync_dirty((Flash *)opaque, -1);
+
+ return 0;
}
static Property m25p80_properties[] = {
diff --git a/hw/block/nand.c b/hw/block/nand.c
index 0d33ac281f..76dcd3f76e 100644
--- a/hw/block/nand.c
+++ b/hw/block/nand.c
@@ -325,11 +325,13 @@ static void nand_command(NANDFlashState *s)
}
}
-static void nand_pre_save(void *opaque)
+static int nand_pre_save(void *opaque)
{
NANDFlashState *s = NAND(opaque);
s->ioaddr_vmstate = s->ioaddr - s->io;
+
+ return 0;
}
static int nand_post_load(void *opaque, int version_id)
diff --git a/hw/block/onenand.c b/hw/block/onenand.c
index b7423607d9..30e40f3914 100644
--- a/hw/block/onenand.c
+++ b/hw/block/onenand.c
@@ -137,7 +137,7 @@ static void onenand_intr_update(OneNANDState *s)
qemu_set_irq(s->intr, ((s->intstatus >> 15) ^ (~s->config[0] >> 6)) & 1);
}
-static void onenand_pre_save(void *opaque)
+static int onenand_pre_save(void *opaque)
{
OneNANDState *s = opaque;
if (s->current == s->otp) {
@@ -147,6 +147,8 @@ static void onenand_pre_save(void *opaque)
} else {
s->current_direction = 0;
}
+
+ return 0;
}
static int onenand_post_load(void *opaque, int version_id)