diff options
Diffstat (limited to 'kernel/trace/trace_events_trigger.c')
-rw-r--r-- | kernel/trace/trace_events_trigger.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c index 4b5e8ed68d77..b38f617b6181 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c | |||
@@ -538,11 +538,12 @@ static int register_trigger(char *glob, struct event_trigger_ops *ops, | |||
538 | list_add_rcu(&data->list, &file->triggers); | 538 | list_add_rcu(&data->list, &file->triggers); |
539 | ret++; | 539 | ret++; |
540 | 540 | ||
541 | update_cond_flag(file); | ||
541 | if (trace_event_trigger_enable_disable(file, 1) < 0) { | 542 | if (trace_event_trigger_enable_disable(file, 1) < 0) { |
542 | list_del_rcu(&data->list); | 543 | list_del_rcu(&data->list); |
544 | update_cond_flag(file); | ||
543 | ret--; | 545 | ret--; |
544 | } | 546 | } |
545 | update_cond_flag(file); | ||
546 | out: | 547 | out: |
547 | return ret; | 548 | return ret; |
548 | } | 549 | } |
@@ -570,8 +571,8 @@ static void unregister_trigger(char *glob, struct event_trigger_ops *ops, | |||
570 | if (data->cmd_ops->trigger_type == test->cmd_ops->trigger_type) { | 571 | if (data->cmd_ops->trigger_type == test->cmd_ops->trigger_type) { |
571 | unregistered = true; | 572 | unregistered = true; |
572 | list_del_rcu(&data->list); | 573 | list_del_rcu(&data->list); |
573 | update_cond_flag(file); | ||
574 | trace_event_trigger_enable_disable(file, 0); | 574 | trace_event_trigger_enable_disable(file, 0); |
575 | update_cond_flag(file); | ||
575 | break; | 576 | break; |
576 | } | 577 | } |
577 | } | 578 | } |
@@ -1314,11 +1315,12 @@ static int event_enable_register_trigger(char *glob, | |||
1314 | list_add_rcu(&data->list, &file->triggers); | 1315 | list_add_rcu(&data->list, &file->triggers); |
1315 | ret++; | 1316 | ret++; |
1316 | 1317 | ||
1318 | update_cond_flag(file); | ||
1317 | if (trace_event_trigger_enable_disable(file, 1) < 0) { | 1319 | if (trace_event_trigger_enable_disable(file, 1) < 0) { |
1318 | list_del_rcu(&data->list); | 1320 | list_del_rcu(&data->list); |
1321 | update_cond_flag(file); | ||
1319 | ret--; | 1322 | ret--; |
1320 | } | 1323 | } |
1321 | update_cond_flag(file); | ||
1322 | out: | 1324 | out: |
1323 | return ret; | 1325 | return ret; |
1324 | } | 1326 | } |
@@ -1339,8 +1341,8 @@ static void event_enable_unregister_trigger(char *glob, | |||
1339 | (enable_data->file == test_enable_data->file)) { | 1341 | (enable_data->file == test_enable_data->file)) { |
1340 | unregistered = true; | 1342 | unregistered = true; |
1341 | list_del_rcu(&data->list); | 1343 | list_del_rcu(&data->list); |
1342 | update_cond_flag(file); | ||
1343 | trace_event_trigger_enable_disable(file, 0); | 1344 | trace_event_trigger_enable_disable(file, 0); |
1345 | update_cond_flag(file); | ||
1344 | break; | 1346 | break; |
1345 | } | 1347 | } |
1346 | } | 1348 | } |