aboutsummaryrefslogtreecommitdiff
path: root/hw/intc
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/intc
parent9ac78b6171bec47083a9b6ce88dc1f114caea2f9 (diff)
downloadqemu-44b1ff319c4781c7ab13f7e119b3114a1e6a52e2.zip
qemu-44b1ff319c4781c7ab13f7e119b3114a1e6a52e2.tar.gz
qemu-44b1ff319c4781c7ab13f7e119b3114a1e6a52e2.tar.bz2
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/intc')
-rw-r--r--hw/intc/apic_common.c4
-rw-r--r--hw/intc/arm_gic_common.c4
-rw-r--r--hw/intc/arm_gicv3_common.c4
-rw-r--r--hw/intc/arm_gicv3_its_common.c4
-rw-r--r--hw/intc/i8259_common.c4
-rw-r--r--hw/intc/ioapic_common.c4
-rw-r--r--hw/intc/s390_flic_kvm.c6
-rw-r--r--hw/intc/xics.c8
8 files changed, 28 insertions, 10 deletions
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index e1ac330..78903ea 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -360,7 +360,7 @@ static int apic_pre_load(void *opaque)
return 0;
}
-static void apic_dispatch_pre_save(void *opaque)
+static int apic_dispatch_pre_save(void *opaque)
{
APICCommonState *s = APIC_COMMON(opaque);
APICCommonClass *info = APIC_COMMON_GET_CLASS(s);
@@ -368,6 +368,8 @@ static void apic_dispatch_pre_save(void *opaque)
if (info->pre_save) {
info->pre_save(s);
}
+
+ return 0;
}
static int apic_dispatch_post_load(void *opaque, int version_id)
diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c
index 70f1134..aee50a2 100644
--- a/hw/intc/arm_gic_common.c
+++ b/hw/intc/arm_gic_common.c
@@ -23,7 +23,7 @@
#include "gic_internal.h"
#include "hw/arm/linux-boot-if.h"
-static void gic_pre_save(void *opaque)
+static int gic_pre_save(void *opaque)
{
GICState *s = (GICState *)opaque;
ARMGICCommonClass *c = ARM_GIC_COMMON_GET_CLASS(s);
@@ -31,6 +31,8 @@ static void gic_pre_save(void *opaque)
if (c->pre_save) {
c->pre_save(s);
}
+
+ return 0;
}
static int gic_post_load(void *opaque, int version_id)
diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c
index 410915a..7b54d52 100644
--- a/hw/intc/arm_gicv3_common.c
+++ b/hw/intc/arm_gicv3_common.c
@@ -28,7 +28,7 @@
#include "gicv3_internal.h"
#include "hw/arm/linux-boot-if.h"
-static void gicv3_pre_save(void *opaque)
+static int gicv3_pre_save(void *opaque)
{
GICv3State *s = (GICv3State *)opaque;
ARMGICv3CommonClass *c = ARM_GICV3_COMMON_GET_CLASS(s);
@@ -36,6 +36,8 @@ static void gicv3_pre_save(void *opaque)
if (c->pre_save) {
c->pre_save(s);
}
+
+ return 0;
}
static int gicv3_post_load(void *opaque, int version_id)
diff --git a/hw/intc/arm_gicv3_its_common.c b/hw/intc/arm_gicv3_its_common.c
index 68b20fc..f2cce59 100644
--- a/hw/intc/arm_gicv3_its_common.c
+++ b/hw/intc/arm_gicv3_its_common.c
@@ -23,7 +23,7 @@
#include "hw/intc/arm_gicv3_its_common.h"
#include "qemu/log.h"
-static void gicv3_its_pre_save(void *opaque)
+static int gicv3_its_pre_save(void *opaque)
{
GICv3ITSState *s = (GICv3ITSState *)opaque;
GICv3ITSCommonClass *c = ARM_GICV3_ITS_COMMON_GET_CLASS(s);
@@ -31,6 +31,8 @@ static void gicv3_its_pre_save(void *opaque)
if (c->pre_save) {
c->pre_save(s);
}
+
+ return 0;
}
static int gicv3_its_post_load(void *opaque, int version_id)
diff --git a/hw/intc/i8259_common.c b/hw/intc/i8259_common.c
index c2fd563..18427b4 100644
--- a/hw/intc/i8259_common.c
+++ b/hw/intc/i8259_common.c
@@ -46,7 +46,7 @@ void pic_reset_common(PICCommonState *s)
/* Note: ELCR is not reset */
}
-static void pic_dispatch_pre_save(void *opaque)
+static int pic_dispatch_pre_save(void *opaque)
{
PICCommonState *s = opaque;
PICCommonClass *info = PIC_COMMON_GET_CLASS(s);
@@ -54,6 +54,8 @@ static void pic_dispatch_pre_save(void *opaque)
if (info->pre_save) {
info->pre_save(s);
}
+
+ return 0;
}
static int pic_dispatch_post_load(void *opaque, int version_id)
diff --git a/hw/intc/ioapic_common.c b/hw/intc/ioapic_common.c
index 97c4f9c..3b3d0a7 100644
--- a/hw/intc/ioapic_common.c
+++ b/hw/intc/ioapic_common.c
@@ -102,7 +102,7 @@ void ioapic_reset_common(DeviceState *dev)
}
}
-static void ioapic_dispatch_pre_save(void *opaque)
+static int ioapic_dispatch_pre_save(void *opaque)
{
IOAPICCommonState *s = IOAPIC_COMMON(opaque);
IOAPICCommonClass *info = IOAPIC_COMMON_GET_CLASS(s);
@@ -110,6 +110,8 @@ static void ioapic_dispatch_pre_save(void *opaque)
if (info->pre_save) {
info->pre_save(s);
}
+
+ return 0;
}
static int ioapic_dispatch_post_load(void *opaque, int version_id)
diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c
index 7ead17a..d208cb8 100644
--- a/hw/intc/s390_flic_kvm.c
+++ b/hw/intc/s390_flic_kvm.c
@@ -420,7 +420,7 @@ typedef struct KVMS390FLICStateMigTmp {
uint8_t nimm;
} KVMS390FLICStateMigTmp;
-static void kvm_flic_ais_pre_save(void *opaque)
+static int kvm_flic_ais_pre_save(void *opaque)
{
KVMS390FLICStateMigTmp *tmp = opaque;
KVMS390FLICState *flic = tmp->parent;
@@ -433,11 +433,13 @@ static void kvm_flic_ais_pre_save(void *opaque)
if (ioctl(flic->fd, KVM_GET_DEVICE_ATTR, &attr)) {
error_report("Failed to retrieve kvm flic ais states");
- return;
+ return -EINVAL;
}
tmp->simm = ais.simm;
tmp->nimm = ais.nimm;
+
+ return 0;
}
static int kvm_flic_ais_post_load(void *opaque, int version_id)
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index 80c33be..cc9816e 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -241,7 +241,7 @@ static void icp_irq(ICSState *ics, int server, int nr, uint8_t priority)
}
}
-static void icp_dispatch_pre_save(void *opaque)
+static int icp_dispatch_pre_save(void *opaque)
{
ICPState *icp = opaque;
ICPStateClass *info = ICP_GET_CLASS(icp);
@@ -249,6 +249,8 @@ static void icp_dispatch_pre_save(void *opaque)
if (info->pre_save) {
info->pre_save(icp);
}
+
+ return 0;
}
static int icp_dispatch_post_load(void *opaque, int version_id)
@@ -533,7 +535,7 @@ static void ics_simple_reset(void *dev)
}
}
-static void ics_simple_dispatch_pre_save(void *opaque)
+static int ics_simple_dispatch_pre_save(void *opaque)
{
ICSState *ics = opaque;
ICSStateClass *info = ICS_BASE_GET_CLASS(ics);
@@ -541,6 +543,8 @@ static void ics_simple_dispatch_pre_save(void *opaque)
if (info->pre_save) {
info->pre_save(ics);
}
+
+ return 0;
}
static int ics_simple_dispatch_post_load(void *opaque, int version_id)