Fix: perform volatile load of tracepoint state
[lttng-ust.git] / include / lttng / tracepoint.h
index 1734c1b7ac8d6c0a5aaedcc9c5e9c4f3db8effc4..4bc4fc9e4446db05feeecbe1a5d9d09e9df87ab9 100644 (file)
@@ -28,6 +28,7 @@
 #include <lttng/tracepoint-types.h>
 #include <lttng/tracepoint-rcu.h>
 #include <urcu/compiler.h>
+#include <urcu/system.h>
 #include <dlfcn.h>     /* for dlopen */
 #include <string.h>    /* for memset */
 #include <lttng/ust-config.h>  /* for sdt */
@@ -45,7 +46,7 @@ extern "C" {
 #endif
 
 #define tracepoint_enabled(provider, name) \
-       caa_unlikely(__tracepoint_##provider##___##name.state)
+       caa_unlikely(CMM_LOAD_SHARED(__tracepoint_##provider##___##name.state))
 
 #define do_tracepoint(provider, name, ...) \
        __tracepoint_cb_##provider##___##name(__VA_ARGS__)
This page took 0.023636 seconds and 4 git commands to generate.