summaryrefslogtreecommitdiffstats
path: root/qemu/memory_mapping.c
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/memory_mapping.c')
-rw-r--r--qemu/memory_mapping.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/qemu/memory_mapping.c b/qemu/memory_mapping.c
index 36d6b2604..2354b2b7f 100644
--- a/qemu/memory_mapping.c
+++ b/qemu/memory_mapping.c
@@ -11,6 +11,8 @@
*
*/
+#include "qemu/osdep.h"
+#include "qapi/error.h"
#include <glib.h>
#include "qemu-common.h"
@@ -177,6 +179,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;
@@ -240,6 +243,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;