diff options
author | David Hildenbrand <david@redhat.com> | 2017-10-16 16:42:57 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2017-10-18 10:14:35 +0200 |
commit | bbfd3017eb0ae59fe799e67046914dd1f94a9767 (patch) | |
tree | ff89da938b10a40128eef4a290b2b1c0cdf45b2c /accel | |
parent | ae990e6cd77a4e6004b7abc6d293598910abca63 (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')
-rw-r--r-- | accel/kvm/kvm-all.c | 3 |
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) { |