| From cb59974742aea24adf6637eb0c4b8e7b48bca6fb Mon Sep 17 00:00:00 2001 |
| From: Ilya Dryomov <idryomov@gmail.com> |
| Date: Mon, 31 Oct 2011 11:07:42 +0200 |
| Subject: tracing: fix event_subsystem ref counting |
| |
| From: Ilya Dryomov <idryomov@gmail.com> |
| |
| commit cb59974742aea24adf6637eb0c4b8e7b48bca6fb upstream. |
| |
| Fix a bug introduced by e9dbfae5, which prevents event_subsystem from |
| ever being released. |
| |
| Ref_count was added to keep track of subsystem users, not for counting |
| events. Subsystem is created with ref_count = 1, so there is no need to |
| increment it for every event, we have nr_events for that. Fix this by |
| touching ref_count only when we actually have a new user - |
| subsystem_open(). |
| |
| Signed-off-by: Ilya Dryomov <idryomov@gmail.com> |
| Link: http://lkml.kernel.org/r/1320052062-7846-1-git-send-email-idryomov@gmail.com |
| Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| kernel/trace/trace_events.c | 1 - |
| 1 file changed, 1 deletion(-) |
| |
| --- a/kernel/trace/trace_events.c |
| +++ b/kernel/trace/trace_events.c |
| @@ -1096,7 +1096,6 @@ event_subsystem_dir(const char *name, st |
| /* First see if we did not already create this dir */ |
| list_for_each_entry(system, &event_subsystems, list) { |
| if (strcmp(system->name, name) == 0) { |
| - __get_system(system); |
| system->nr_events++; |
| return system->entry; |
| } |