]> git.karo-electronics.de Git - karo-tx-linux.git/commit
tracing: Fix a race in function profile
authorLi Zefan <lizf@cn.fujitsu.com>
Mon, 23 Aug 2010 08:50:12 +0000 (16:50 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 20 Sep 2010 20:36:33 +0000 (13:36 -0700)
commitb8536db269735d35d2b9a6480d40de212fed1b3c
tree12dbd74f71599e82bed62fd097b6f038f6baaab7
parent803ac2f1bd3eea08152c253dbc5f7c9865010331
tracing: Fix a race in function profile

commit 3aaba20f26f58843e8f20611e5c0b1c06954310f upstream.

While we are reading trace_stat/functionX and someone just
disabled function_profile at that time, we can trigger this:

divide error: 0000 [#1] PREEMPT SMP
...
EIP is at function_stat_show+0x90/0x230
...

This fix just takes the ftrace_profile_lock and checks if
rec->counter is 0. If it's 0, we know the profile buffer
has been reset.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
LKML-Reference: <4C723644.4040708@cn.fujitsu.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/trace/ftrace.c