summary refs log tree commit diff stats
path: root/hw/i386/kvmvapic.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2013-05-06 10:46:11 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2013-07-04 17:42:45 +0200
commitdfde4e6e1a868f60033ece0590b1f75e6c57fa16 (patch)
treea84c1cddd96c6dc60fd7a5d35949b4fcaf9a32ed /hw/i386/kvmvapic.c
parent3ce10901ca8da9142dcdcde198fda1a4c290934c (diff)
downloadfocaccia-qemu-dfde4e6e1a868f60033ece0590b1f75e6c57fa16.tar.gz
focaccia-qemu-dfde4e6e1a868f60033ece0590b1f75e6c57fa16.zip
memory: add ref/unref calls
Add ref/unref calls at the following places:

- places where memory regions are stashed by a listener and
  used outside the BQL (including in Xen or KVM).

- memory_region_find callsites

- creation of aliases and containers (only the aliased/contained
  region gets a reference to avoid loops)

- around calls to del_subregion/add_subregion, where the region
  could disappear after the first call

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/i386/kvmvapic.c')
-rw-r--r--hw/i386/kvmvapic.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
index 08da69e4d1..21b59122dd 100644
--- a/hw/i386/kvmvapic.c
+++ b/hw/i386/kvmvapic.c
@@ -605,6 +605,7 @@ static void vapic_map_rom_writable(VAPICROMState *s)
                              rom_size);
     memory_region_add_subregion_overlap(as, rom_paddr, &s->rom, 1000);
     s->rom_mapped_writable = true;
+    memory_region_unref(section.mr);
 }
 
 static int vapic_prepare(VAPICROMState *s)