[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 01/12] macfb: handle errors that occur during realize
From: |
Laurent Vivier |
Subject: |
Re: [PATCH 01/12] macfb: handle errors that occur during realize |
Date: |
Mon, 4 Oct 2021 10:47:10 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
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-ayland@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 <laurent@vivier.eu>