mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
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>
This commit is contained in:
parent
3ce10901ca
commit
dfde4e6e1a
16 changed files with 63 additions and 5 deletions
|
@ -789,6 +789,7 @@ static void kvm_set_phys_mem(MemoryRegionSection *section, bool add)
|
|||
static void kvm_region_add(MemoryListener *listener,
|
||||
MemoryRegionSection *section)
|
||||
{
|
||||
memory_region_ref(section->mr);
|
||||
kvm_set_phys_mem(section, true);
|
||||
}
|
||||
|
||||
|
@ -796,6 +797,7 @@ static void kvm_region_del(MemoryListener *listener,
|
|||
MemoryRegionSection *section)
|
||||
{
|
||||
kvm_set_phys_mem(section, false);
|
||||
memory_region_unref(section->mr);
|
||||
}
|
||||
|
||||
static void kvm_log_sync(MemoryListener *listener,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue