diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2015-03-23 10:50:57 +0100 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-06-05 17:09:58 +0200 |
| commit | 2d1a35bef0ed96b3f23535e459c552414ccdbafd (patch) | |
| tree | 2911512c3fc1e768a4d9799b84c1d6c89ad470f9 /kvm-all.c | |
| parent | 5299c0f2cf951c23ec681ff87e455d1cf4ec537b (diff) | |
| download | focaccia-qemu-2d1a35bef0ed96b3f23535e459c552414ccdbafd.tar.gz focaccia-qemu-2d1a35bef0ed96b3f23535e459c552414ccdbafd.zip | |
memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask
For now memory regions only track DIRTY_MEMORY_VGA individually, but this will change soon. To support this, split memory_region_is_logging in two functions: one that returns a given bit from dirty_log_mask, and one that returns the entire mask. memory_region_is_logging gets an extra parameter so that the compiler flags misuse. While VGA-specific users (including the Xen listener!) will want to keep checking that bit, KVM and vhost check for "any bit except migration" (because migration is handled via the global start/stop listener callbacks). Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'kvm-all.c')
| -rw-r--r-- | kvm-all.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kvm-all.c b/kvm-all.c index 44a34a52d8..d5416bbd74 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -663,7 +663,8 @@ static void kvm_set_phys_mem(MemoryRegionSection *section, bool add) KVMSlot *mem, old; int err; MemoryRegion *mr = section->mr; - bool log_dirty = memory_region_is_logging(mr); + bool log_dirty = + memory_region_get_dirty_log_mask(mr) & ~(1 << DIRTY_MEMORY_MIGRATION); bool writeable = !mr->readonly && !mr->rom_device; bool readonly_flag = mr->readonly || memory_region_is_romd(mr); hwaddr start_addr = section->offset_within_address_space; |