On 5/29/07, Ben Taylor <[EMAIL PROTECTED]> wrote:
Looks like the patch from http://cvs.savannah.gnu.org/viewcvs/qemu/exec.c?cvsroot=qemu&r1=1.96&r2=1.97 needs to be reverted and reworked before being recommitted.
Thank you for the reports. I still can't reproduce the bug, but it seems that on PC, the area between 0xa0000 and 0x100000 is registered multiple times and this could confuse the subpage code. Adding printf to cpu_register_physical memory reveals: cpu_register_physical_memory: start_addr 00000000000a0000 size 1000 phys_offset 70 cpu_register_physical_memory: start_addr 00000000000a0000 size 1000 phys_offset 70 cpu_register_physical_memory: start_addr 00000000000a0000 size 1000 phys_offset 70 cpu_register_physical_memory: start_addr 00000000000a0000 size 1000 phys_offset 70 cpu_register_physical_memory: start_addr 00000000000a0000 size 1000 phys_offset 70 cpu_register_physical_memory: start_addr 00000000000a0000 size 20000 phys_offset 70 cpu_register_physical_memory: start_addr 00000000000a0000 size 20000 phys_offset a0000 The subpage part in cpu_register_physical_memory could be disabled just for i386. A better fix would be to fix the PC/VGA/PIIX memory registrations and also make the subpage code handle this case.