Use error_setg() to return an error instead of using an explicit exit().
Signed-off-by: David Gibson <[email protected]>
---
hw/ppc/spapr.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 0ff09b9..fd16db4 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1107,6 +1107,7 @@ static void spapr_reset_htab(sPAPRMachineState *spapr,
Error **errp)
static int find_unknown_sysbus_device(SysBusDevice *sbdev, void *opaque)
{
+ Error **errp = opaque;
bool matched = false;
if (object_dynamic_cast(OBJECT(sbdev), TYPE_SPAPR_PCI_HOST_BRIDGE)) {
@@ -1114,9 +1115,9 @@ static int find_unknown_sysbus_device(SysBusDevice
*sbdev, void *opaque)
}
if (!matched) {
- error_report("Device %s is not supported by this machine yet.",
- qdev_fw_name(DEVICE(sbdev)));
- exit(1);
+ error_setg(errp,
+ "Device %s is not supported by this machine yet",
+ qdev_fw_name(DEVICE(sbdev)));
}
return 0;
@@ -1151,7 +1152,7 @@ static void ppc_spapr_reset(void)
uint32_t rtas_limit;
/* Check for unknown sysbus devices */
- foreach_dynamic_sysbus_device(find_unknown_sysbus_device, NULL);
+ foreach_dynamic_sysbus_device(find_unknown_sysbus_device, &error_abort);
/* Reset the hash table & recalc the RMA */
spapr_reset_htab(spapr, &error_abort);
--
2.5.0