From 4410e702d9b421799e0142ee4d3640d0f04297c8 Mon Sep 17 00:00:00 2001 From: Balazs Gerofi Date: Tue, 16 Aug 2016 14:17:59 +0900 Subject: [PATCH] devobj: fix memory leak for device file mapping --- kernel/devobj.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/devobj.c b/kernel/devobj.c index cbaf2a0a..3225454a 100644 --- a/kernel/devobj.c +++ b/kernel/devobj.c @@ -166,6 +166,8 @@ static void devobj_release(struct memobj *memobj) struct devobj *obj = to_devobj(memobj); struct devobj *free_obj = NULL; uintptr_t handle; + const size_t pfn_npages = + (obj->npages / (PAGE_SIZE / sizeof(uintptr_t))) + 1; dkprintf("devobj_release(%p %lx)\n", obj, obj->handle); @@ -194,7 +196,7 @@ static void devobj_release(struct memobj *memobj) } if (obj->pfn_table) { - free_pages(obj->pfn_table, 1); + free_pages(obj->pfn_table, pfn_npages); } kfree(free_obj); }