Fix: perform volatile load of tracepoint state
[lttng-ust.git] / include / lttng / tracepoint.h
index 63759a20ee3da5f7a7e0beb6f08219c8567abe55..39539911d3b6a12e5a55849013e324958ec4b797 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 */
@@ -47,7 +48,7 @@ extern "C" {
 #define tracepoint(provider, name, ...)                                            \
        do {                                                                \
                STAP_PROBEV(provider, name, ## __VA_ARGS__);                \
-               if (caa_unlikely(__tracepoint_##provider##___##name.state)) \
+               if (caa_unlikely(CMM_LOAD_SHARED(__tracepoint_##provider##___##name.state))) \
                        __tracepoint_cb_##provider##___##name(__VA_ARGS__); \
        } while (0)
 
This page took 0.023402 seconds and 4 git commands to generate.