From: Jan Kiszka Date: Fri, 1 May 2009 18:52:47 +0000 (+0200) Subject: kvm: Fix dirty log temporary buffer size X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=62518b8b1dccb67969688228f14fb379f1918ede;p=qmiga%2Fqemu.git kvm: Fix dirty log temporary buffer size The buffer passed to KVM_GET_DIRTY_LOG requires one bit per page. Fix the size calculation in kvm_physical_sync_dirty_bitmap accordingly, avoiding allocation of extremly oversized buffers. Signed-off-by: Jan Kiszka Signed-off-by: Anthony Liguori --- diff --git a/kvm-all.c b/kvm-all.c index f4851c0078..3b6b5ed423 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -290,7 +290,7 @@ void kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr, return; } - alloc_size = mem->memory_size >> TARGET_PAGE_BITS / sizeof(d.dirty_bitmap); + alloc_size = ((mem->memory_size >> TARGET_PAGE_BITS) + 7) / 8; d.dirty_bitmap = qemu_mallocz(alloc_size); d.slot = mem->slot;