Просмотр исходного кода

tracing: Fix counter for traceon/off event triggers

The counters for the traceon and traceoff are only suppose to decrement
when the trigger enables or disables tracing. It is not suppose to decrement
every time the event is hit.

Only decrement the counter if the trigger actually did something.

Link: http://lkml.kernel.org/r/20140106223124.0e5fd0b4@gandalf.local.home

Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Steven Rostedt (Red Hat) 11 лет назад
Родитель
Сommit
e8dc637152
1 измененных файлов с 8 добавлено и 2 удалено
  1. 8 2
      kernel/trace/trace_events_trigger.c

+ 8 - 2
kernel/trace/trace_events_trigger.c

@@ -742,13 +742,16 @@ traceon_trigger(struct event_trigger_data *data)
 static void
 static void
 traceon_count_trigger(struct event_trigger_data *data)
 traceon_count_trigger(struct event_trigger_data *data)
 {
 {
+	if (tracing_is_on())
+		return;
+
 	if (!data->count)
 	if (!data->count)
 		return;
 		return;
 
 
 	if (data->count != -1)
 	if (data->count != -1)
 		(data->count)--;
 		(data->count)--;
 
 
-	traceon_trigger(data);
+	tracing_on();
 }
 }
 
 
 static void
 static void
@@ -763,13 +766,16 @@ traceoff_trigger(struct event_trigger_data *data)
 static void
 static void
 traceoff_count_trigger(struct event_trigger_data *data)
 traceoff_count_trigger(struct event_trigger_data *data)
 {
 {
+	if (!tracing_is_on())
+		return;
+
 	if (!data->count)
 	if (!data->count)
 		return;
 		return;
 
 
 	if (data->count != -1)
 	if (data->count != -1)
 		(data->count)--;
 		(data->count)--;
 
 
-	traceoff_trigger(data);
+	tracing_off();
 }
 }
 
 
 static int
 static int