From: David Goulet Date: Thu, 30 Sep 2010 18:52:55 +0000 (+0200) Subject: Fix missing data pointer X-Git-Tag: v0.8~8 X-Git-Url: http://git.lttng.org/?p=ust.git;a=commitdiff_plain;h=9b9e13aaa8da76eab50542b5762c9e5c47348a6d Fix missing data pointer This applies to tracepoint using a marker (trace_mark_tp) At commit 9dec086e052cf7f583a3afaa3aab48a6de8d38ac, the tracepoint_probe_register/unregister_noupdate function has been changed with the addition of a void data pointer. In set_marker(), the call to that function was not updated with this new parameter. The effect was that on a second register_trace with an already registered probe, the data ptr was corrupted with false data and thus the probe checking failed to validate duplicates. So, the same data was reproduced for a single trace call. Same behavior for unregistering the marker, it was not found. NOTE : For now, this pointer is NULL because we don't have at this point tracing session. Signed-off-by: David Goulet Acked-by: Mathieu Desnoyers --- diff --git a/libust/marker.c b/libust/marker.c index 0c85cc3..cb8ffc1 100644 --- a/libust/marker.c +++ b/libust/marker.c @@ -594,11 +594,11 @@ static int set_marker(struct marker_entry *entry, struct marker *elem, //ust// BUG_ON(!ret); ret = tracepoint_probe_register_noupdate( elem->tp_name, - elem->tp_cb); + elem->tp_cb, NULL); } else { ret = tracepoint_probe_unregister_noupdate( elem->tp_name, - elem->tp_cb); + elem->tp_cb, NULL); /* * tracepoint_probe_update_all() must be called * before the module containing tp_cb is unloaded. @@ -630,7 +630,7 @@ static void disable_marker(struct marker *elem) * checking has been done in the __trace_mark_tp() macro. */ ret = tracepoint_probe_unregister_noupdate(elem->tp_name, - elem->tp_cb); + elem->tp_cb, NULL); WARN_ON(ret); /* * tracepoint_probe_update_all() must be called