summaryrefslogtreecommitdiffstats
path: root/kernel/trace
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-12-20 00:44:44 +0100
committerSteven Rostedt <rostedt@goodmis.org>2011-12-21 13:21:43 +0100
commitc842e975520f8ab09e293cc92f51a1f396251fd5 (patch)
tree87102ee6a89cb30415927f43b7694e3ec5b127aa /kernel/trace
parentftrace: Use bsearch to find record ip (diff)
downloadlinux-c842e975520f8ab09e293cc92f51a1f396251fd5.tar.xz
linux-c842e975520f8ab09e293cc92f51a1f396251fd5.zip
ftrace: Fix ftrace hash record update with notrace
When disabling the "notrace" records, that means we want to trace them. If the notrace_hash is zero, it means that we want to trace all records. But to disable a zero notrace_hash means nothing. The check for the notrace_hash count was incorrect with: if (hash && !hash->count) return With the correct comment above it that states that we do nothing if the notrace_hash has zero count. But !hash also means that the notrace hash has zero count. I think this was done to protect against dereferencing NULL. But if !hash is true, then we go through the following loop without doing a single thing. Fix it to: if (!hash || !hash->count) return; Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
-rw-r--r--kernel/trace/ftrace.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index dcd3a814d39b..a383d6c67bfa 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1381,7 +1381,7 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops,
* If the notrace hash has no items,
* then there's nothing to do.
*/
- if (hash && !hash->count)
+ if (!hash || !hash->count)
return;
}