hw/pl110.c: Add post-load hook to invalidate display
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 <peter.maydell@linaro.org>
This commit is contained in:
		
							parent
							
								
									624923be11
								
							
						
					
					
						commit
						128939a954
					
				
							
								
								
									
										11
									
								
								hw/pl110.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								hw/pl110.c
									
									
									
									
									
								
							| @ -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); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Maydell
						Peter Maydell