From a71b1c5e1232c8fe10e4858f2ede358f3e8135a5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 4 Aug 2009 15:23:43 +0100 Subject: [PATCH] add two missing cirrus_update_memory_access the cirrus emulation code misses two calls to cirrus_update_memory_access; this fact together with the condition on the call to cirrus_update_memory_access in cirrus_bitblt_reset can cause segfaults in qemu. Signed-off-by: Stefano Stabellini (cherry picked from commit 5a369fdfe6eeb8aa2a2cd52387bf03fed83e925c) (cherry picked from commit b9935ce33bcc20ae722a8945a6fbc0f23d84f9e5) --- hw/cirrus_vga.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index 9c56960f..4dd88855 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -1288,6 +1288,7 @@ cirrus_hook_read_sr(CirrusVGAState * s, unsigned reg_index, int *reg_value) break; case 0x05: // ??? case 0x07: // Extended Sequencer Mode + cirrus_update_memory_access(s); case 0x08: // EEPROM Control case 0x09: // Scratch Register 0 case 0x0a: // Scratch Register 1 @@ -1539,6 +1540,7 @@ cirrus_hook_write_gr(CirrusVGAState * s, unsigned reg_index, int reg_value) s->gr[reg_index] = reg_value; cirrus_update_bank_ptr(s, 0); cirrus_update_bank_ptr(s, 1); + cirrus_update_memory_access(s); break; case 0x0B: s->gr[reg_index] = reg_value; -- 2.39.5