Message ID | 0f9c30350bdf9d062609a15124f30f6c2b0a4b60.1710282274.git.mst@redhat.com |
---|---|
State | New |
Headers | show |
Series | [PULL,01/68] vdpa: add back vhost_vdpa_net_first_nc_vdpa | expand |
Hi Michael, Thanks a lot and also this one, I forgot to update the status :/, this patch has been merged (commit 4a9fafb478b5, "hw/intc: Check @errp to handle the error of IOAPICCommonClass.realize()"). Sorry to make you repeat the merge. Best Regards, Zhao On Tue, Mar 12, 2024 at 06:27:32PM -0400, Michael S. Tsirkin wrote: > Date: Tue, 12 Mar 2024 18:27:32 -0400 > From: "Michael S. Tsirkin" <mst@redhat.com> > Subject: [PULL 39/68] hw/intc: Check @errp to handle the error of > IOAPICCommonClass.realize() > X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 > > 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> > Message-Id: <20240223085653.1255438-8-zhao1.liu@linux.intel.com> > Reviewed-by: Michael S. Tsirkin <mst@redhat.com> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > 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 cb9bf62146..efbe6958c8 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++; > -- > MST >
diff --git a/hw/intc/ioapic_common.c b/hw/intc/ioapic_common.c index cb9bf62146..efbe6958c8 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++;