[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] qemu-kvm: fix unmatched RAM alloction/free
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] qemu-kvm: fix unmatched RAM alloction/free |
Date: |
Thu, 23 May 2013 13:13:29 -0400 (EDT) |
> mmap is used in qemu_vmalloc function instead of qemu_memalign(commit
> 7dda5dc8), so it should change qemu_vfree to munmap to fix a unmatched
> issue.
>
> This issue appears when a PCI device is being assigned to KVM guest,
> failure to read PCI rom file will bring RAM free, then the incorrect
> qemu_vfree calling will cause a segment fault.
>
> Signed-off-by: Xudong Hao <address@hidden>
> ---
> exec.c | 6 +-----
> 1 files changed, 1 insertions(+), 5 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index fa1e0c3..d40d237 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1152,15 +1152,11 @@ void qemu_ram_free(ram_addr_t addr)
> abort();
> #endif
> } else {
> -#if defined(TARGET_S390X) && defined(CONFIG_KVM)
> - munmap(block->host, block->length);
> -#else
> if (xen_enabled()) {
> xen_invalidate_map_cache_entry(block->host);
> } else {
> - qemu_vfree(block->host);
> + munmap(block->host, block->length);
> }
> -#endif
> }
> g_free(block);
> break;
Just "git pull". :) This is very similar to commit e7a09b9 (osdep: introduce
qemu_anon_ram_free to free qemu_anon_ram_alloc-ed memory, 2013-05-13)
Paolo