tree fa46f2abc3cf7a9eaf2148e4b980261ba0dae513
parent 4c834452aad01531db949414f94f817a86348d59
author Steven Rostedt (Red Hat) <rostedt@goodmis.org> 1398911748 -0400
committer Steven Rostedt <rostedt@goodmis.org> 1404137393 -0400

ftrace: Allow no regs if no more callbacks require it

When registering a function callback for the function tracer, the ops
can specify if it wants to save full regs (like an interrupt would)
for each function that it traces, or if it does not care about regs
and just wants to have the fastest return possible.

Once a ops has registered a function, if other ops register that
function they all will receive the regs too. That's because it does
the work once, it does it for everyone.

Now if the ops wanting regs unregisters the function so that there's
only ops left that do not care about regs, those ops will still
continue getting regs and going through the work for it on that
function. This is because the disabling of the rec counter only
sees the ops registered, and does not see the ops that are still
attached, and does not know if the current ops that are still attached
want regs or not. To play it safe, it just keeps regs being processed
until no function is registered anymore.

Instead of doing that, check the ops that are still registered for that
function and if none want regs for it anymore, then disable the
processing of regs.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
