Message ID | 20211002110007.30825-3-mark.cave-ayland@ilande.co.uk |
---|---|
State | New |
Headers | show |
Series | macfb: fixes for booting MacOS | expand |
On Sat, 2 Oct 2021, Mark Cave-Ayland wrote: > During realize memory_region_init_ram_nomigrate() is used to initialise the RAM > memory region used for the framebuffer but the owner object reference is > incorrect since MacFbState is a typedef and not a QOM type. > > Change the memory region owner to be the corresponding DeviceState to fix the > issue and prevent random crashes during macfb_common_realize(). > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu> > --- > hw/display/macfb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/display/macfb.c b/hw/display/macfb.c > index 2b747a8de8..815870f2fe 100644 > --- a/hw/display/macfb.c > +++ b/hw/display/macfb.c > @@ -365,7 +365,7 @@ static void macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp) > memory_region_init_io(&s->mem_ctrl, OBJECT(dev), &macfb_ctrl_ops, s, > "macfb-ctrl", 0x1000); > > - memory_region_init_ram_nomigrate(&s->mem_vram, OBJECT(s), "macfb-vram", > + memory_region_init_ram_nomigrate(&s->mem_vram, OBJECT(dev), "macfb-vram", > MACFB_VRAM_SIZE, errp); > s->vram = memory_region_get_ram_ptr(&s->mem_vram); > s->vram_bit_mask = MACFB_VRAM_SIZE - 1; >
On 10/2/21 12:59, Mark Cave-Ayland wrote: > During realize memory_region_init_ram_nomigrate() is used to initialise the RAM > memory region used for the framebuffer but the owner object reference is > incorrect since MacFbState is a typedef and not a QOM type. > > Change the memory region owner to be the corresponding DeviceState to fix the > issue and prevent random crashes during macfb_common_realize(). > Fixes: 8ac919a0654 ("hw/m68k: add Nubus macfb video card") Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/display/macfb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-)
Le 02/10/2021 à 12:59, Mark Cave-Ayland a écrit : > During realize memory_region_init_ram_nomigrate() is used to initialise the RAM > memory region used for the framebuffer but the owner object reference is > incorrect since MacFbState is a typedef and not a QOM type. > > Change the memory region owner to be the corresponding DeviceState to fix the > issue and prevent random crashes during macfb_common_realize(). > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/display/macfb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/display/macfb.c b/hw/display/macfb.c > index 2b747a8de8..815870f2fe 100644 > --- a/hw/display/macfb.c > +++ b/hw/display/macfb.c > @@ -365,7 +365,7 @@ static void macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp) > memory_region_init_io(&s->mem_ctrl, OBJECT(dev), &macfb_ctrl_ops, s, > "macfb-ctrl", 0x1000); > > - memory_region_init_ram_nomigrate(&s->mem_vram, OBJECT(s), "macfb-vram", > + memory_region_init_ram_nomigrate(&s->mem_vram, OBJECT(dev), "macfb-vram", > MACFB_VRAM_SIZE, errp); > s->vram = memory_region_get_ram_ptr(&s->mem_vram); > s->vram_bit_mask = MACFB_VRAM_SIZE - 1; > Reviewed-by: Laurent Vivier <laurent@vivier.eu>
diff --git a/hw/display/macfb.c b/hw/display/macfb.c index 2b747a8de8..815870f2fe 100644 --- a/hw/display/macfb.c +++ b/hw/display/macfb.c @@ -365,7 +365,7 @@ static void macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp) memory_region_init_io(&s->mem_ctrl, OBJECT(dev), &macfb_ctrl_ops, s, "macfb-ctrl", 0x1000); - memory_region_init_ram_nomigrate(&s->mem_vram, OBJECT(s), "macfb-vram", + memory_region_init_ram_nomigrate(&s->mem_vram, OBJECT(dev), "macfb-vram", MACFB_VRAM_SIZE, errp); s->vram = memory_region_get_ram_ptr(&s->mem_vram); s->vram_bit_mask = MACFB_VRAM_SIZE - 1;
During realize memory_region_init_ram_nomigrate() is used to initialise the RAM memory region used for the framebuffer but the owner object reference is incorrect since MacFbState is a typedef and not a QOM type. Change the memory region owner to be the corresponding DeviceState to fix the issue and prevent random crashes during macfb_common_realize(). Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/display/macfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)