OSDN Git Service

ftrace: Simplify ftrace_match_record() even more
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Wed, 3 May 2017 15:41:44 +0000 (11:41 -0400)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Thu, 4 May 2017 02:15:13 +0000 (22:15 -0400)
commit77c0eddeeeee14bf0fb0c0bb97e782981bbcf084
tree0e5c2135c8d4364668ede155ee0b7522537f6c24
parent31805c90521ea75dfa3d016fc94f581da6a40fee
ftrace: Simplify ftrace_match_record() even more

Dan Carpenter sent a patch to remove a check in ftrace_match_record()
because the logic of the code made the check redundant. I looked deeper into
the code, and made the following logic table, with the three variables and
the result of the original code.

modname        mod_matches     exclude_mod         result
-------        -----------     -----------         ------
  0                 0               0              return 0
  0                 0               1              func_match
  0                 1               *             < cannot exist >
  1                 0               0              return 0
  1                 0               1              func_match
  1                 1               0              func_match
  1                 1               1              return 0

Notice that when mod_matches == exclude mod, the result is always to
return 0, and when mod_matches != exclude_mod, then the result is to test
the function. This means we only need test if mod_matches is equal to
exclude_mod.

Cc: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/ftrace.c