diff -X excl -rduNp qemu.oorig/exec.c qemu/exec.c --- qemu.oorig/exec.c 2005-07-28 17:54:37.000000000 +0200 +++ qemu/exec.c 2005-07-31 13:30:30.000000000 +0200 @@ -2168,7 +2168,7 @@ void cpu_physical_memory_rw(target_phys_ target_phys_addr_t page; unsigned long pd; PhysPageDesc *p; - + while (len > 0) { page = addr & TARGET_PAGE_MASK; l = (page + TARGET_PAGE_SIZE) - addr; @@ -2180,22 +2180,22 @@ void cpu_physical_memory_rw(target_phys_ } else { pd = p->phys_offset; } - + if (is_write) { if ((pd & ~TARGET_PAGE_MASK) != 0) { io_index = (pd >> IO_MEM_SHIFT) & (IO_MEM_NB_ENTRIES - 1); if (l >= 4 && ((addr & 3) == 0)) { - /* 32 bit read access */ + /* 32 bit write access */ val = ldl_p(buf); io_mem_write[io_index][2](io_mem_opaque[io_index], addr, val); l = 4; } else if (l >= 2 && ((addr & 1) == 0)) { - /* 16 bit read access */ + /* 16 bit write access */ val = lduw_p(buf); io_mem_write[io_index][1](io_mem_opaque[io_index], addr, val); l = 2; } else { - /* 8 bit access */ + /* 8 bit write access */ val = ldub_p(buf); io_mem_write[io_index][0](io_mem_opaque[io_index], addr, val); l = 1;