Message ID | 20240223085653.1255438-8-zhao1.liu@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Cleanup and fix @errp dereference | expand |
On 23/2/24 09:56, Zhao Liu wrote: > From: Zhao Liu <zhao1.liu@intel.com> > > IOAPICCommonClass implements its own private realize(), and this private > realize() allows error. > > Since IOAPICCommonClass.realize() returns void, to check the error, > dereference @errp with ERRP_GUARD(). > > Signed-off-by: Zhao Liu <zhao1.liu@intel.com> > --- > v2: > * Add the missing ERRP_GUARD(). (Markus) > * Move this single patch into @errp fixing series. (Micheal) > --- > hw/intc/ioapic_common.c | 4 ++++ > 1 file changed, 4 insertions(+) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
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++;