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:
parent
14f12119aa
commit
7437b13eac
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user