X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=memory_mapping.c;h=6a39d71da269acb950297b434e3e13d7a9c0b8b8;hb=138cf638bae7b42fe8d616636585050d88568604;hp=04db3ac7faf2caaec260959e7950400a993226d0;hpb=d38ea87ac54af64ef611de434d07c12dc0399216;p=mirror_qemu.git diff --git a/memory_mapping.c b/memory_mapping.c index 04db3ac7fa..6a39d71da2 100644 --- a/memory_mapping.c +++ b/memory_mapping.c @@ -12,7 +12,7 @@ */ #include "qemu/osdep.h" -#include +#include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -178,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; @@ -205,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; } @@ -241,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;