lkml.org 
[lkml]   [2015]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 01/10] tracing: Update cond flag when enabling or disabling a trigger
    Date
    When a trigger is enabled, the cond flag should be set beforehand,
    otherwise a trigger that's expecting to process a trace record
    (e.g. one with post_trigger set) could be invoked without one.

    Likewise a trigger's cond flag should be reset after it's disabled,
    not before.

    Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
    ---
    kernel/trace/trace_events_trigger.c | 10 ++++++----
    1 file changed, 6 insertions(+), 4 deletions(-)

    diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c
    index 42a4009..4d2f3cc 100644
    --- a/kernel/trace/trace_events_trigger.c
    +++ b/kernel/trace/trace_events_trigger.c
    @@ -543,11 +543,12 @@ static int register_trigger(char *glob, struct event_trigger_ops *ops,
    list_add_rcu(&data->list, &file->triggers);
    ret++;

    + update_cond_flag(file);
    if (trace_event_trigger_enable_disable(file, 1) < 0) {
    list_del_rcu(&data->list);
    + update_cond_flag(file);
    ret--;
    }
    - update_cond_flag(file);
    out:
    return ret;
    }
    @@ -575,8 +576,8 @@ static void unregister_trigger(char *glob, struct event_trigger_ops *ops,
    if (data->cmd_ops->trigger_type == test->cmd_ops->trigger_type) {
    unregistered = true;
    list_del_rcu(&data->list);
    - update_cond_flag(file);
    trace_event_trigger_enable_disable(file, 0);
    + update_cond_flag(file);
    break;
    }
    }
    @@ -1319,11 +1320,12 @@ static int event_enable_register_trigger(char *glob,
    list_add_rcu(&data->list, &file->triggers);
    ret++;

    + update_cond_flag(file);
    if (trace_event_trigger_enable_disable(file, 1) < 0) {
    list_del_rcu(&data->list);
    + update_cond_flag(file);
    ret--;
    }
    - update_cond_flag(file);
    out:
    return ret;
    }
    @@ -1344,8 +1346,8 @@ static void event_enable_unregister_trigger(char *glob,
    (enable_data->file == test_enable_data->file)) {
    unregistered = true;
    list_del_rcu(&data->list);
    - update_cond_flag(file);
    trace_event_trigger_enable_disable(file, 0);
    + update_cond_flag(file);
    break;
    }
    }
    --
    1.9.3


    \
     
     \ /
      Last update: 2015-06-09 00:21    [W:2.638 / U:0.380 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site