Cirrus VGA save and restore functions cast lfb_addr into an uint64_t
pointer while lfb_addr is only an unsigned long.
Same thing happened to lfb_end, causing pci_dev to be partially
overwritten by mistake.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
(cherry picked from commit
ea324bf41565322b370b27253b1a7eaa3cc360b9)
Conflicts:
hw/cirrus_vga.c
int last_hw_cursor_y_end;
int real_vram_size; /* XXX: suppress that */
CPUWriteMemoryFunc **cirrus_linear_write;
- unsigned long map_addr;
- unsigned long map_end;
+ uint32_t map_addr;
+ uint32_t map_end;
} CirrusVGAState;
typedef struct PCICirrusVGAState {
unsigned int vram_size; \
unsigned long bios_offset; \
unsigned int bios_size; \
- unsigned long lfb_addr; \
- unsigned long lfb_end; \
+ uint32_t lfb_addr; \
+ uint32_t lfb_end; \
PCIDevice *pci_dev; \
uint32_t latch; \
uint8_t sr_index; \