Skip to content

Commit 4a0c9b3

Browse files
committed
Merge tag 'probes-fixes-v6.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull probe fixes from Masami Hiramatsu: - tprobe-events: Fix to register tracepoint correctly tprobe-events missed to set tracepoint data structure before registering callback when enabling it. This sets it correctly. - tprobe-events: Fix to put tracepoint_user when disable the event tprobe-events missed to unregister tracepoint callback when the event is disabled. This ensures to unregister it. * tag 'probes-fixes-v6.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: tracing: tprobe-events: Fix to put tracepoint_user when disable the tprobe tracing: tprobe-events: Fix to register tracepoint correctly
2 parents f5f2e20 + c91afa7 commit 4a0c9b3

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

kernel/trace/trace_fprobe.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,14 @@ static struct tracepoint_user *__tracepoint_user_init(const char *name, struct t
106106
if (!tuser->name)
107107
return NULL;
108108

109+
/* Register tracepoint if it is loaded. */
109110
if (tpoint) {
111+
tuser->tpoint = tpoint;
110112
ret = tracepoint_user_register(tuser);
111113
if (ret)
112114
return ERR_PTR(ret);
113115
}
114116

115-
tuser->tpoint = tpoint;
116117
tuser->refcount = 1;
117118
INIT_LIST_HEAD(&tuser->list);
118119
list_add(&tuser->list, &tracepoint_user_list);
@@ -1513,6 +1514,10 @@ static int disable_trace_fprobe(struct trace_event_call *call,
15131514
if (!trace_probe_is_enabled(tp)) {
15141515
list_for_each_entry(tf, trace_probe_probe_list(tp), tp.list) {
15151516
unregister_fprobe(&tf->fp);
1517+
if (tf->tuser) {
1518+
tracepoint_user_put(tf->tuser);
1519+
tf->tuser = NULL;
1520+
}
15161521
}
15171522
}
15181523

0 commit comments

Comments
 (0)