summaryrefslogtreecommitdiff
path: root/accel/kvm
diff options
context:
space:
mode:
authorDavid Hildenbrand <david@redhat.com>2017-10-16 16:42:57 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2017-10-18 10:14:35 +0200
commitbbfd3017eb0ae59fe799e67046914dd1f94a9767 (patch)
treeff89da938b10a40128eef4a290b2b1c0cdf45b2c /accel/kvm
parentae990e6cd77a4e6004b7abc6d293598910abca63 (diff)
kvm: fix alignment of ram address
Fix the wrong calculation of the delta, used to align the ram address. This only strikes if alignment has to be done. Reported-by: Joe Clifford <joeclifford@gmail.com> Fixes: 5ea69c2e3614 ("kvm: factor out alignment of memory section") Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20171016144302.24284-3-david@redhat.com> Tested-by: Joe Clifford <joeclifford@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'accel/kvm')
-rw-r--r--accel/kvm/kvm-all.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index 90c88b517d..fae1eca983 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -717,8 +717,9 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
return;
}
+ /* use aligned delta to align the ram address */
ram = memory_region_get_ram_ptr(mr) + section->offset_within_region +
- (section->offset_within_address_space - start_addr);
+ (start_addr - section->offset_within_address_space);
mem = kvm_lookup_matching_slot(kml, start_addr, size);
if (!add) {