X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=memory_mapping.c;h=6a39d71da269acb950297b434e3e13d7a9c0b8b8;hb=eb87203b646c27938ecb11d7766c5c98f836241f;hp=36d6b26046eef223125bcd2d76e6e360c96a8eb2;hpb=94beb661bd90bcb477eed6d3b07aced988c40163;p=mirror_qemu.git diff --git a/memory_mapping.c b/memory_mapping.c index 36d6b26046..6a39d71da2 100644 --- a/memory_mapping.c +++ b/memory_mapping.c @@ -11,7 +11,8 @@ * */ -#include +#include "qemu/osdep.h" +#include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -177,6 +178,7 @@ void guest_phys_blocks_free(GuestPhysBlockList *list) QTAILQ_FOREACH_SAFE(p, &list->head, next, q) { QTAILQ_REMOVE(&list->head, p, next); + memory_region_unref(p->mr); g_free(p); } list->num = 0; @@ -204,7 +206,7 @@ static void guest_phys_blocks_region_add(MemoryListener *listener, /* we only care about RAM */ if (!memory_region_is_ram(section->mr) || - memory_region_is_skip_dump(section->mr)) { + memory_region_is_ram_device(section->mr)) { return; } @@ -240,6 +242,8 @@ static void guest_phys_blocks_region_add(MemoryListener *listener, block->target_start = target_start; block->target_end = target_end; block->host_addr = host_addr; + block->mr = section->mr; + memory_region_ref(section->mr); QTAILQ_INSERT_TAIL(&g->list->head, block, next); ++g->list->num;