]> git.karo-electronics.de Git - linux-beck.git/blobdiff - kernel/trace/trace_events_trigger.c
stmmac: fix TX normal DESC
[linux-beck.git] / kernel / trace / trace_events_trigger.c
index e4d8b376317594b6f83990041c0037f1943b62b8..d67992f3bb0ee02551487dfa9a87fc39e924a96c 100644 (file)
@@ -81,7 +81,7 @@ event_triggers_call(struct trace_event_file *file, void *rec)
                filter = rcu_dereference_sched(data->filter);
                if (filter && !filter_match_preds(filter, rec))
                        continue;
-               if (data->cmd_ops->post_trigger) {
+               if (event_command_post_trigger(data->cmd_ops)) {
                        tt |= data->cmd_ops->trigger_type;
                        continue;
                }
@@ -193,6 +193,19 @@ static int event_trigger_regex_open(struct inode *inode, struct file *file)
                return -ENODEV;
        }
 
+       if ((file->f_mode & FMODE_WRITE) &&
+           (file->f_flags & O_TRUNC)) {
+               struct trace_event_file *event_file;
+               struct event_command *p;
+
+               event_file = event_file_data(file);
+
+               list_for_each_entry(p, &trigger_commands, list) {
+                       if (p->unreg_all)
+                               p->unreg_all(event_file);
+               }
+       }
+
        if (file->f_mode & FMODE_READ) {
                ret = seq_open(file, &event_triggers_seq_ops);
                if (!ret) {
@@ -493,7 +506,8 @@ void update_cond_flag(struct trace_event_file *file)
        bool set_cond = false;
 
        list_for_each_entry_rcu(data, &file->triggers, list) {
-               if (data->filter || data->cmd_ops->post_trigger) {
+               if (data->filter || event_command_post_trigger(data->cmd_ops) ||
+                   event_command_needs_rec(data->cmd_ops)) {
                        set_cond = true;
                        break;
                }
@@ -1021,7 +1035,7 @@ stacktrace_get_trigger_ops(char *cmd, char *param)
 static struct event_command trigger_stacktrace_cmd = {
        .name                   = "stacktrace",
        .trigger_type           = ETT_STACKTRACE,
-       .post_trigger           = true,
+       .flags                  = EVENT_CMD_FL_POST_TRIGGER,
        .func                   = event_trigger_callback,
        .reg                    = register_trigger,
        .unreg                  = unregister_trigger,