diff options
author | Wang Sheng-Hui <crosslonelyover@gmail.com> | 2010-04-13 21:04:10 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-26 14:27:07 -0700 |
commit | 0851f4563b9e0770d4b3c071e605cb5e150c6ed3 (patch) | |
tree | d1fc0d0e091de3be4485a857065bdc5855270d89 | |
parent | 4531e534fec25888d8645ef9b2ecf6146e96c2a7 (diff) |
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 <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Wang Sheng-Hui <crosslonelyover@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | kernel/trace/trace.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 8f3fb3db61c..dfe39952622 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); |