From: Zhao Liu <zhao1.liu@intel.com>
IOAPICCommonClass implements its own private realize(), and this private
realize() allows error.
Therefore, return directly if IOAPICCommonClass.realize() meets error.
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
---
v2: Add the missing ERRP_GUARD(). (Markus)
---
hw/intc/ioapic_common.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hw/intc/ioapic_common.c b/hw/intc/ioapic_common.c
index cb9bf6214608..efbe6958c8d7 100644
--- a/hw/intc/ioapic_common.c
+++ b/hw/intc/ioapic_common.c
@@ -152,6 +152,7 @@ static int ioapic_dispatch_post_load(void *opaque, int version_id)
static void ioapic_common_realize(DeviceState *dev, Error **errp)
{
+ ERRP_GUARD();
IOAPICCommonState *s = IOAPIC_COMMON(dev);
IOAPICCommonClass *info;
@@ -162,6 +163,9 @@ static void ioapic_common_realize(DeviceState *dev, Error **errp)
info = IOAPIC_COMMON_GET_CLASS(s);
info->realize(dev, errp);
+ if (*errp) {
+ return;
+ }
sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->io_memory);
ioapic_no++;
--
2.34.1