macfb: handle errors that occur during realize

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-ayland@ilande.co.uk>
Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20211007221253.29024-2-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
Mark Cave-Ayland 2021-10-07 23:12:41 +01:00 committed by Laurent Vivier
parent 14f12119aa
commit 7437b13eac
1 changed files with 11 additions and 0 deletions

View File

@ -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);
}