Framebuffer memory which was mmap() is being free() at the shutdown
of the guest, leading to glibc errors.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
#include <linux/kernel.h>
#include <linux/list.h>
#include <stdlib.h>
+#include <sys/mman.h>
static LIST_HEAD(framebuffers);
struct framebuffer *fb;
list_for_each_entry(fb, &framebuffers, node) {
- free(fb->mem);
+ munmap(fb->mem, fb->mem_size);
}
}
.depth = VESA_BPP,
.mem = mem,
.mem_addr = VESA_MEM_ADDR,
+ .mem_size = VESA_MEM_SIZE,
};
return fb__register(&vesafb);
}
u8 depth;
char *mem;
u64 mem_addr;
+ u64 mem_size;
unsigned long nr_targets;
struct fb_target_operations *targets[FB_MAX_TARGETS];