diff options
author | Steven Rostedt <srostedt@redhat.com> | 2011-12-19 18:44:44 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2011-12-21 07:21:43 -0500 |
commit | c842e975520f8ab09e293cc92f51a1f396251fd5 (patch) | |
tree | 87102ee6a89cb30415927f43b7694e3ec5b127aa /kernel/trace | |
parent | 5855fead9cc358adebd6bdeec202d040c623ae38 (diff) | |
download | op-kernel-dev-c842e975520f8ab09e293cc92f51a1f396251fd5.zip op-kernel-dev-c842e975520f8ab09e293cc92f51a1f396251fd5.tar.gz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index dcd3a81..a383d6c 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; } |