]> Git Repo - qemu.git/commitdiff
hw/pl110.c: Add post-load hook to invalidate display
authorPeter Maydell <[email protected]>
Mon, 19 Dec 2011 12:01:58 +0000 (12:01 +0000)
committerPeter Maydell <[email protected]>
Wed, 4 Jan 2012 10:32:16 +0000 (10:32 +0000)
Add a post-load hook which invalidates the display. In particular, if we
don't do this and the display size we've just reloaded is larger than
the default then we will segfault trying to read off the end of the buffer.

Signed-off-by: Peter Maydell <[email protected]>
hw/pl110.c

index 303a9bcdbdeb36ad788991d01d51d630587eba51..0e1f415aebd15ed90cf2bfd71bd8f32515a54ab9 100644 (file)
@@ -60,10 +60,13 @@ typedef struct {
     qemu_irq irq;
 } pl110_state;
 
+static int vmstate_pl110_post_load(void *opaque, int version_id);
+
 static const VMStateDescription vmstate_pl110 = {
     .name = "pl110",
     .version_id = 2,
     .minimum_version_id = 1,
+    .post_load = vmstate_pl110_post_load,
     .fields = (VMStateField[]) {
         VMSTATE_INT32(version, pl110_state),
         VMSTATE_UINT32_ARRAY(timing, pl110_state, 4),
@@ -430,6 +433,14 @@ static void pl110_mux_ctrl_set(void *opaque, int line, int level)
     s->mux_ctrl = level;
 }
 
+static int vmstate_pl110_post_load(void *opaque, int version_id)
+{
+    pl110_state *s = opaque;
+    /* Make sure we redraw, and at the right size */
+    pl110_invalidate_display(s);
+    return 0;
+}
+
 static int pl110_init(SysBusDevice *dev)
 {
     pl110_state *s = FROM_SYSBUS(pl110_state, dev);
This page took 0.02946 seconds and 4 git commands to generate.