aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/ftrace.c
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2014-06-11 04:06:53 -0400
committerSteven Rostedt <rostedt@goodmis.org>2014-07-01 07:13:40 -0400
commit1f61be007e16a5d60b1cf868aa30d87f181e8e14 (patch)
treec35734b8355041e7bec6bf6ff9f4777abbc79fe5 /kernel/trace/ftrace.c
parenta737e6dd7bfbd6d87ce1525840e6957bcb6e47e6 (diff)
ftrace: Fix memory leak on failure path in ftrace_allocate_pages()
As struct ftrace_page is managed in a single linked list, it should free from the start page. Link: http://lkml.kernel.org/p/1402474014-28655-1-git-send-email-namhyung@kernel.org Signed-off-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/ftrace.c')
-rw-r--r--kernel/trace/ftrace.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 39df3192e725..e14ff4c1713e 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2637,7 +2637,8 @@ ftrace_allocate_pages(unsigned long num_to_init)
2637 return start_pg; 2637 return start_pg;
2638 2638
2639 free_pages: 2639 free_pages:
2640 while (start_pg) { 2640 pg = start_pg;
2641 while (pg) {
2641 order = get_count_order(pg->size / ENTRIES_PER_PAGE); 2642 order = get_count_order(pg->size / ENTRIES_PER_PAGE);
2642 free_pages((unsigned long)pg->records, order); 2643 free_pages((unsigned long)pg->records, order);
2643 start_pg = pg->next; 2644 start_pg = pg->next;