On Thu, 29 Oct 2026 at 16:13, Alex Bennée <[email protected]> wrote:
>
> 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
> 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
For the fix
Reviewed-by: Peter Maydell <[email protected]>
thanks
-- PMM