Commit 90ed4bcc authored by David Hildenbrand's avatar David Hildenbrand Committed by Paolo Bonzini
Browse files

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: default avatarDavid Hildenbrand <david@redhat.com>
Message-Id: <20171016144302.24284-6-david@redhat.com>
Tested-by: default avatarJoe Clifford <joeclifford@gmail.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 1c4fdaba
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -721,8 +721,8 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
    ram = memory_region_get_ram_ptr(mr) + section->offset_within_region +
          (start_addr - section->offset_within_address_space);

    mem = kvm_lookup_matching_slot(kml, start_addr, size);
    if (!add) {
        mem = kvm_lookup_matching_slot(kml, start_addr, size);
        if (!mem) {
            return;
        }
@@ -741,12 +741,6 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
        return;
    }

    if (mem) {
        /* update the slot */
        kvm_slot_update_flags(kml, mem, mr);
        return;
    }

    /* register the new slot */
    mem = kvm_alloc_slot(kml);
    mem->memory_size = size;