Skip to content

Commit 7437b13

Browse files
mcaylandvivier
authored andcommitted
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 <[email protected]> Reviewed-by: BALATON Zoltan <[email protected]> Reviewed-by: Laurent Vivier <[email protected]> Message-Id: <[email protected]> Signed-off-by: Laurent Vivier <[email protected]>
1 parent 14f1211 commit 7437b13

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

hw/display/macfb.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,10 @@ static void macfb_sysbus_realize(DeviceState *dev, Error **errp)
379379
MacfbState *ms = &s->macfb;
380380

381381
macfb_common_realize(dev, ms, errp);
382+
if (*errp) {
383+
return;
384+
}
385+
382386
sysbus_init_mmio(SYS_BUS_DEVICE(s), &ms->mem_ctrl);
383387
sysbus_init_mmio(SYS_BUS_DEVICE(s), &ms->mem_vram);
384388
}
@@ -391,8 +395,15 @@ static void macfb_nubus_realize(DeviceState *dev, Error **errp)
391395
MacfbState *ms = &s->macfb;
392396

393397
ndc->parent_realize(dev, errp);
398+
if (*errp) {
399+
return;
400+
}
394401

395402
macfb_common_realize(dev, ms, errp);
403+
if (*errp) {
404+
return;
405+
}
406+
396407
memory_region_add_subregion(&nd->slot_mem, DAFB_BASE, &ms->mem_ctrl);
397408
memory_region_add_subregion(&nd->slot_mem, VIDEO_BASE, &ms->mem_vram);
398409
}

0 commit comments

Comments
 (0)