]> xenbits.xensource.com Git - qemu-xen-3.3-testing.git/commitdiff
add two missing cirrus_update_memory_access
authorIan Jackson <ian.jackson@eu.citrix.com>
Tue, 4 Aug 2009 14:23:43 +0000 (15:23 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 4 Aug 2009 14:50:36 +0000 (15:50 +0100)
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 <stefano.stabellini@eu.citrix.com>
(cherry picked from commit 5a369fdfe6eeb8aa2a2cd52387bf03fed83e925c)
(cherry picked from commit b9935ce33bcc20ae722a8945a6fbc0f23d84f9e5)

hw/cirrus_vga.c

index 9c56960f8e22851f049e64cc005b1807c9e7e4d5..4dd88855fcb575ba969181200e1bb2f986414326 100644 (file)
@@ -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;