Le 02/10/2021 à 12:59, Mark Cave-Ayland a écrit : > Make sure any errors that occur within the macfb realize chain are detected > and handled correctly to prevent crashes and to ensure that error messages are > reported back to the user. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> > --- > hw/display/macfb.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/hw/display/macfb.c b/hw/display/macfb.c > index 76808b69cc..2b747a8de8 100644 > --- a/hw/display/macfb.c > +++ b/hw/display/macfb.c > @@ -379,6 +379,10 @@ static void macfb_sysbus_realize(DeviceState *dev, Error > **errp) > MacfbState *ms = &s->macfb; > > macfb_common_realize(dev, ms, errp); > + if (*errp) { > + return; > + } > + > sysbus_init_mmio(SYS_BUS_DEVICE(s), &ms->mem_ctrl); > sysbus_init_mmio(SYS_BUS_DEVICE(s), &ms->mem_vram); > } > @@ -391,8 +395,15 @@ static void macfb_nubus_realize(DeviceState *dev, Error > **errp) > MacfbState *ms = &s->macfb; > > ndc->parent_realize(dev, errp); > + if (*errp) { > + return; > + } > > macfb_common_realize(dev, ms, errp); > + if (*errp) { > + return; > + } > + > memory_region_add_subregion(&nd->slot_mem, DAFB_BASE, &ms->mem_ctrl); > memory_region_add_subregion(&nd->slot_mem, VIDEO_BASE, &ms->mem_vram); > } >
Perhaps as suggested by Philippe you change macfb_common_realize() to return a value and an error? Otherwise: Reviewed-by: Laurent Vivier <laur...@vivier.eu>