提交 90ed4bcc 编写于 作者: D David Hildenbrand 提交者: Paolo Bonzini

kvm: region_add and region_del is not called on updates

Attributes are not updated via region_add()/region_del(). Attribute changes
lead to a delete first, followed by a new add.

If this would ever not be the case, we would get an error when trying to
register the new slot.
Signed-off-by: NDavid Hildenbrand <david@redhat.com>
Message-Id: <20171016144302.24284-6-david@redhat.com>
Tested-by: NJoe Clifford <joeclifford@gmail.com>
Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
上级 1c4fdaba
...@@ -721,8 +721,8 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, ...@@ -721,8 +721,8 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
ram = memory_region_get_ram_ptr(mr) + section->offset_within_region + ram = memory_region_get_ram_ptr(mr) + section->offset_within_region +
(start_addr - section->offset_within_address_space); (start_addr - section->offset_within_address_space);
mem = kvm_lookup_matching_slot(kml, start_addr, size);
if (!add) { if (!add) {
mem = kvm_lookup_matching_slot(kml, start_addr, size);
if (!mem) { if (!mem) {
return; return;
} }
...@@ -741,12 +741,6 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, ...@@ -741,12 +741,6 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
return; return;
} }
if (mem) {
/* update the slot */
kvm_slot_update_flags(kml, mem, mr);
return;
}
/* register the new slot */ /* register the new slot */
mem = kvm_alloc_slot(kml); mem = kvm_alloc_slot(kml);
mem->memory_size = size; mem->memory_size = size;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册