qemu-irix/include/exec
Haozhong Zhang 084140bd49 exec: fix access to ram_list.dirty_memory when sync dirty bitmap
In cpu_physical_memory_sync_dirty_bitmap(rb, start, ...), the 2nd
argument 'start' is relative to the start of the ramblock 'rb'. When
it's used to access the dirty memory bitmap of ram_list (i.e.
ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION]->blocks[]), an offset to
the start of all RAM (i.e. rb->offset) should be added to it, which has
however been missed since c/s 6b6712efcc. For a ramblock of host memory
backend whose offset is not zero, cpu_physical_memory_sync_dirty_bitmap()
synchronizes the incorrect part of the dirty memory bitmap of ram_list
to the per ramblock dirty bitmap. As a result, a guest with host
memory backend may crash after migration.

Fix it by adding the offset of ramblock when accessing the dirty memory
bitmap of ram_list in cpu_physical_memory_sync_dirty_bitmap().

Reported-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
Message-Id: <20170628083704.24997-1-haozhong.zhang@intel.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Tested-by: Juan Quintela <quintela@redhat.com>
Tested-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2017-06-28 12:23:58 +02:00
..
user
address-spaces.h
cpu-all.h
cpu-common.h
cpu-defs.h
cpu_ldst.h
cpu_ldst_template.h
cpu_ldst_useronly_template.h
cputlb.h
exec-all.h tcg/arm: Use indirect branch for goto_tb 2017-06-19 11:10:59 -07:00
gdbstub.h
gen-icount.h
helper-gen.h
helper-head.h
helper-proto.h
helper-tcg.h
hwaddr.h
ioport.h
log.h
memattrs.h
memory-internal.h
memory.h exec: allow to get a pointer for some mmio memory region 2017-06-27 15:09:15 +02:00
poison.h include/exec/poison: Mark some CONFIG defines as poisoned, too 2017-06-15 11:18:39 +02:00
ram_addr.h exec: fix access to ram_list.dirty_memory when sync dirty bitmap 2017-06-28 12:23:58 +02:00
ramlist.h ramblock: add new hmp command "info ramblock" 2017-05-17 17:31:16 +01:00
semihost.h
softmmu-semi.h
target_page.h migration: Make savevm.c target independent 2017-05-18 19:21:00 +02:00
tb-context.h tcg: allocate TB structs before the corresponding translated code 2017-06-19 11:10:59 -07:00
tb-hash-xx.h
tb-hash.h tb-hash: improve tb_jmp_cache hash function in user mode 2017-06-05 09:25:42 -07:00