summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRomain Izard <romain.izard.pro@gmail.com>2014-03-04 09:09:39 (GMT)
committerSteven Rostedt <rostedt@goodmis.org>2014-05-08 11:05:18 (GMT)
commit098507ae3ec2331476fb52e85d4040c1cc6d0ef4 (patch)
tree042a286bccbfa39e0db97d36fe9fd4a3ffeae64e /include
parent561a4fe851ccab9dd0d14989ab566f9392d9f8b5 (diff)
downloadlinux-098507ae3ec2331476fb52e85d4040c1cc6d0ef4.tar.xz
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>
Diffstat (limited to 'include')
-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 11fd51b..daa60c7 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);
),