summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Izard <romain.izard.pro@gmail.com>2014-03-04 10:09:39 +0100
committerSteven Rostedt <rostedt@goodmis.org>2014-05-08 07:05:18 -0400
commit098507ae3ec2331476fb52e85d4040c1cc6d0ef4 (patch)
tree042a286bccbfa39e0db97d36fe9fd4a3ffeae64e
parent561a4fe851ccab9dd0d14989ab566f9392d9f8b5 (diff)
downloadlinux-stable-098507ae3ec2331476fb52e85d4040c1cc6d0ef4.tar.gz
linux-stable-098507ae3ec2331476fb52e85d4040c1cc6d0ef4.tar.bz2
linux-stable-098507ae3ec2331476fb52e85d4040c1cc6d0ef4.zip
trace: module: Maintain a valid user count
The replacement of the 'count' variable by two variables 'incs' and 'decs' to resolve some race conditions during module unloading was done in parallel with some cleanup in the trace subsystem, and was integrated as a merge. Unfortunately, the formula for this replacement was wrong in the tracing code, and the refcount in the traces was not usable as a result. Use 'count = incs - decs' to compute the user count. Link: http://lkml.kernel.org/p/1393924179-9147-1-git-send-email-romain.izard.pro@gmail.com Acked-by: Ingo Molnar <mingo@kernel.org> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: stable@vger.kernel.org # 2.6.35 Fixes: c1ab9cab7509 "merge conflict resolution" Signed-off-by: Romain Izard <romain.izard.pro@gmail.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--include/trace/events/module.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/trace/events/module.h b/include/trace/events/module.h
index 11fd51b413de..daa60c739456 100644
--- a/include/trace/events/module.h
+++ b/include/trace/events/module.h
@@ -80,7 +80,7 @@ DECLARE_EVENT_CLASS(module_refcnt,
TP_fast_assign(
__entry->ip = ip;
- __entry->refcnt = __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs);
+ __entry->refcnt = __this_cpu_read(mod->refptr->incs) - __this_cpu_read(mod->refptr->decs);
__assign_str(name, mod->name);
),