summaryrefslogtreecommitdiff
path: root/virt
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2019-05-08 17:15:45 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-05-22 07:38:56 +0200
commit87e61d57ae37677c635098ecb33ab25431d7cc6f (patch)
treea9bc2bc84da1b80bbd6049446413ec35793a2202 /virt
parent295a7bd172d2708f27b67f1594679a8b1d5d30ac (diff)
KVM: Fix the bitmap range to copy during clear dirty
commit 4ddc9204572c33f2eb91fbdb1d99d8078388b67d upstream. kvm_dirty_bitmap_bytes() will return the size of the dirty bitmap of the memslot rather than the size of bitmap passed over from the ioctl. Here for KVM_CLEAR_DIRTY_LOG we should only copy exactly the size of bitmap that covers kvm_clear_dirty_log.num_pages. Signed-off-by: Peter Xu <peterx@redhat.com> Cc: stable@vger.kernel.org Fixes: 2a31b9db153530df4aa02dac8c32837bf5f47019 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'virt')
-rw-r--r--virt/kvm/kvm_main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index ff68b07e94e9..b5238bcba72c 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -1251,7 +1251,7 @@ int kvm_clear_dirty_log_protect(struct kvm *kvm,
if (!dirty_bitmap)
return -ENOENT;
- n = kvm_dirty_bitmap_bytes(memslot);
+ n = ALIGN(log->num_pages, BITS_PER_LONG) / 8;
if (log->first_page > memslot->npages ||
log->num_pages > memslot->npages - log->first_page)