TRACE_EVENT_FL_NO_SET_FILTER_BIT,
        TRACE_EVENT_FL_IGNORE_ENABLE_BIT,
        TRACE_EVENT_FL_TRACEPOINT_BIT,
+       TRACE_EVENT_FL_DYNAMIC_BIT,
        TRACE_EVENT_FL_KPROBE_BIT,
        TRACE_EVENT_FL_UPROBE_BIT,
 };
  *  NO_SET_FILTER - Set when filter has error and is to be ignored
  *  IGNORE_ENABLE - For trace internal events, do not enable with debugfs file
  *  TRACEPOINT    - Event is a tracepoint
+ *  DYNAMIC       - Event is a dynamic event (created at run time)
  *  KPROBE        - Event is a kprobe
  *  UPROBE        - Event is a uprobe
  */
        TRACE_EVENT_FL_NO_SET_FILTER    = (1 << TRACE_EVENT_FL_NO_SET_FILTER_BIT),
        TRACE_EVENT_FL_IGNORE_ENABLE    = (1 << TRACE_EVENT_FL_IGNORE_ENABLE_BIT),
        TRACE_EVENT_FL_TRACEPOINT       = (1 << TRACE_EVENT_FL_TRACEPOINT_BIT),
+       TRACE_EVENT_FL_DYNAMIC          = (1 << TRACE_EVENT_FL_DYNAMIC_BIT),
        TRACE_EVENT_FL_KPROBE           = (1 << TRACE_EVENT_FL_KPROBE_BIT),
        TRACE_EVENT_FL_UPROBE           = (1 << TRACE_EVENT_FL_UPROBE_BIT),
 };
 
        return 0;
 }
 
-static inline int dyn_event_add(struct dyn_event *ev)
+static inline int dyn_event_add(struct dyn_event *ev,
+                               struct trace_event_call *call)
 {
        lockdep_assert_held(&event_mutex);
 
        if (!ev || !ev->ops)
                return -EINVAL;
 
+       call->flags |= TRACE_EVENT_FL_DYNAMIC;
        list_add_tail(&ev->list, &dyn_event_list);
        return 0;
 }
 
        if (ret)
                trace_probe_unlink(&tk->tp);
        else
-               dyn_event_add(&tk->devent);
+               dyn_event_add(&tk->devent, trace_probe_event_call(&tk->tp));
 
        return ret;
 }
        if (ret < 0)
                unregister_kprobe_event(tk);
        else
-               dyn_event_add(&tk->devent);
+               dyn_event_add(&tk->devent, trace_probe_event_call(&tk->tp));
 
 end:
        mutex_unlock(&event_mutex);
 
        /* Append to existing event */
        ret = trace_probe_append(&tu->tp, &to->tp);
        if (!ret)
-               dyn_event_add(&tu->devent);
+               dyn_event_add(&tu->devent, trace_probe_event_call(&tu->tp));
 
        return ret;
 }
                goto end;
        }
 
-       dyn_event_add(&tu->devent);
+       dyn_event_add(&tu->devent, trace_probe_event_call(&tu->tp));
 
 end:
        mutex_unlock(&event_mutex);