hostmem: detect host backend memory is being used properly
authorXiao Guangrong <guangrong.xiao@linux.intel.com>
Wed, 13 Jul 2016 04:18:06 +0000 (12:18 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 13 Jul 2016 11:30:04 +0000 (13:30 +0200)
commit2aece63c8a9d2c3a8ff41d2febc4cdeff2633331
tree02964fa0c17b241f41f4be55d1381eb8f2b24018
parent1454d33f0507cb54d62ed80f494884157c9e7130
hostmem: detect host backend memory is being used properly

Currently, we use memory_region_is_mapped() to detect if the host
backend memory is being used. This works if the memory is directly
mapped into guest's address space, however, it is not true for
nvdimm as it uses aliased memory region to map the memory. This is
why this bug can happen:
   https://bugzilla.redhat.com/show_bug.cgi?id=1352769

Fix it by introduce a new filed, is_mapped, to HostMemoryBackend,
we set/clear this filed accordingly when the device link/unlink to
host backend memory

Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
backends/hostmem.c
hw/mem/pc-dimm.c
hw/misc/ivshmem.c
include/sysemu/hostmem.h