From: Wang Sheng-Hui Date: Tue, 13 Apr 2010 13:04:10 +0000 (+0800) Subject: trace: Fix inappropriate substraction on tracing_pages_allocated in trace_free_page() X-Git-Tag: v2.6.27.47~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0851f4563b9e0770d4b3c071e605cb5e150c6ed3;p=thirdparty%2Fkernel%2Fstable.git trace: Fix inappropriate substraction on tracing_pages_allocated in trace_free_page() [No matching upstream git commit id as it was fixed differently due to a rewrite of the tracing code there.] For normal case, the code in trace_free_page() do once more substraction on tracing_pages_allocated, but for CONFIG_TRACER_MAX_TRACE  it doesn't take the freed page into account. That's not consistent with trace_alloc_page(). Well, for there are no message related with this, so we cannot observe its incorrect state when the kernel doesn't define "CONFIG_TRACER_MAX_TRACE". If you add some pr_info() as trace_alloc_page(), you may notice it. Cc: Steven Rostedt Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Li Zefan Signed-off-by: Wang Sheng-Hui Signed-off-by: Greg Kroah-Hartman --- diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 8f3fb3db61c39..dfe39952622bf 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -3018,7 +3018,6 @@ static int trace_free_page(void) ClearPageLRU(page); list_del(&page->lru); tracing_pages_allocated--; - tracing_pages_allocated--; __free_page(page); tracing_reset(data); @@ -3036,6 +3035,7 @@ static int trace_free_page(void) page = list_entry(p, struct page, lru); ClearPageLRU(page); list_del(&page->lru); + tracing_pages_allocated--; __free_page(page); tracing_reset(data);