X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=memory_mapping.c;h=e3ec70624f871db4fc26494cad17b79034feaabb;hb=28605a22f564860c885bde42ad91840e9aacec45;hp=c8855de92b10c1db0302b3833bfd4bd80b58e9a8;hpb=67ef811ed1452efe9d60c4baa20c8ef6ea0cfe87;p=mirror_qemu.git diff --git a/memory_mapping.c b/memory_mapping.c index c8855de92b..e3ec70624f 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" @@ -206,7 +206,8 @@ 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) || + memory_region_is_nonvolatile(section->mr)) { return; } @@ -222,7 +223,7 @@ static void guest_phys_blocks_region_add(MemoryListener *listener, if (!QTAILQ_EMPTY(&g->list->head)) { hwaddr predecessor_size; - predecessor = QTAILQ_LAST(&g->list->head, GuestPhysBlockHead); + predecessor = QTAILQ_LAST(&g->list->head); predecessor_size = predecessor->target_end - predecessor->target_start; /* the memory API guarantees monotonically increasing traversal */ @@ -256,7 +257,7 @@ static void guest_phys_blocks_region_add(MemoryListener *listener, #ifdef DEBUG_GUEST_PHYS_REGION_ADD fprintf(stderr, "%s: target_start=" TARGET_FMT_plx " target_end=" - TARGET_FMT_plx ": %s (count: %u)\n", __FUNCTION__, target_start, + TARGET_FMT_plx ": %s (count: %u)\n", __func__, target_start, target_end, predecessor ? "joined" : "added", g->list->num); #endif } @@ -337,6 +338,7 @@ void memory_mapping_filter(MemoryMappingList *list, int64_t begin, if (cur->phys_addr >= begin + length || cur->phys_addr + cur->length <= begin) { QTAILQ_REMOVE(&list->head, cur, next); + g_free(cur); list->num--; continue; }