We don't take care to force re-validation of the config on migration leading to a crash when the defaults don't match the migration stream. The other frame-buffers seem to do a similar thing in post-loads to address this.
Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/4668 Fixes: 5e9c2a8dac19 ("bcm2835_fb: add framebuffer device for Raspberry Pi") Reviewed-by: Peter Maydell <[email protected]> Message-ID: <[email protected]> Signed-off-by: Alex Bennée <[email protected]> --- hw/display/bcm2835_fb.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/hw/display/bcm2835_fb.c b/hw/display/bcm2835_fb.c index bd58f625fcd..c5731521b57 100644 --- a/hw/display/bcm2835_fb.c +++ b/hw/display/bcm2835_fb.c @@ -352,10 +352,21 @@ static const MemoryRegionOps bcm2835_fb_ops = { .valid.max_access_size = 4, }; +static int bcm2835_fb_post_load(void *opaque, int version_id) +{ + BCM2835FBState *s = opaque; + + bcm2835_fb_validate_config(&s->config); + s->invalidate = true; + qemu_console_resize(s->con, s->config.xres, s->config.yres); + return 0; +} + static const VMStateDescription vmstate_bcm2835_fb = { .name = TYPE_BCM2835_FB, .version_id = 1, .minimum_version_id = 1, + .post_load = bcm2835_fb_post_load, .fields = (const VMStateField[]) { VMSTATE_BOOL(lock, BCM2835FBState), VMSTATE_BOOL(invalidate, BCM2835FBState), -- 2.47.3
