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: 5ea69c2e36 ("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>
This commit is contained in:
David Hildenbrand 2017-10-16 16:42:57 +02:00 committed by Paolo Bonzini
parent ae990e6cd7
commit bbfd3017eb

View file

@ -717,8 +717,9 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
return; return;
} }
/* use aligned delta to align the ram address */
ram = memory_region_get_ram_ptr(mr) + section->offset_within_region + 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); mem = kvm_lookup_matching_slot(kml, start_addr, size);
if (!add) { if (!add) {