Commit-ID: 788a81e106afeefdcc5e122e4b1f7bbed676351b Gitweb: http://git.kernel.org/tip/788a81e106afeefdcc5e122e4b1f7bbed676351b Author: Sasha Levin <levinsasha928@xxxxxxxxx> AuthorDate: Fri, 17 Jun 2011 07:13:16 -0400 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Fri, 17 Jun 2011 16:43:40 +0300 kvm tools: Fix attempt to free mmaped memory Framebuffer memory which was mmap() is being free() at the shutdown of the guest, leading to glibc errors. Signed-off-by: Sasha Levin <levinsasha928@xxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/framebuffer.c | 3 ++- tools/kvm/hw/vesa.c | 1 + tools/kvm/include/kvm/framebuffer.h | 1 + 3 files changed, 4 insertions(+), 1 deletions(-) diff --git a/tools/kvm/framebuffer.c b/tools/kvm/framebuffer.c index 1e35496..b6eb1ac 100644 --- a/tools/kvm/framebuffer.c +++ b/tools/kvm/framebuffer.c @@ -3,6 +3,7 @@ #include <linux/kernel.h> #include <linux/list.h> #include <stdlib.h> +#include <sys/mman.h> static LIST_HEAD(framebuffers); @@ -62,6 +63,6 @@ void fb__stop(void) struct framebuffer *fb; list_for_each_entry(fb, &framebuffers, node) { - free(fb->mem); + munmap(fb->mem, fb->mem_size); } } diff --git a/tools/kvm/hw/vesa.c b/tools/kvm/hw/vesa.c index 71322fc..032e630 100644 --- a/tools/kvm/hw/vesa.c +++ b/tools/kvm/hw/vesa.c @@ -70,6 +70,7 @@ struct framebuffer *vesa__init(struct kvm *kvm) .depth = VESA_BPP, .mem = mem, .mem_addr = VESA_MEM_ADDR, + .mem_size = VESA_MEM_SIZE, }; return fb__register(&vesafb); } diff --git a/tools/kvm/include/kvm/framebuffer.h b/tools/kvm/include/kvm/framebuffer.h index d28dadb..b66d0ba 100644 --- a/tools/kvm/include/kvm/framebuffer.h +++ b/tools/kvm/include/kvm/framebuffer.h @@ -20,6 +20,7 @@ struct framebuffer { u8 depth; char *mem; u64 mem_addr; + u64 mem_size; unsigned long nr_targets; struct fb_target_operations *targets[FB_MAX_TARGETS]; -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html