Fix: tracepoint event: allow same provider and event name
[lttng-modules.git] / probes / lttng-tracepoint-event-impl.h
index 39454fb3d9c13d68fc4648aa135a1aacd224bb80..53c929d86110b1295e58f179cde885cd181ed4f5 100644 (file)
 #include <linux/rculist.h>
 #include <asm/byteorder.h>
 #include <linux/swab.h>
-#include <linux/uidgid.h>
 
 #include <probes/lttng.h>
 #include <probes/lttng-types.h>
 #include <probes/lttng-probe-user.h>
-#include <wrapper/vmalloc.h>   /* for wrapper_vmalloc_sync_all() */
+#include <wrapper/vmalloc.h>   /* for wrapper_vmalloc_sync_mappings() */
 #include <wrapper/ringbuffer/frontend_types.h>
 #include <wrapper/ringbuffer/backend.h>
 #include <wrapper/rcu.h>
+#include <wrapper/user_namespace.h>
 #include <lttng-events.h>
 #include <lttng-tracer-core.h>
 #include <lttng-tp-mempool.h>
@@ -1132,11 +1132,11 @@ static void __event_probe__##_name(void *__data, _proto)                      \
                                                                              \
        if (!_TP_SESSION_CHECK(session, __session))                           \
                return;                                                       \
-       if (unlikely(!READ_ONCE(__session->active)))                          \
+       if (unlikely(!LTTNG_READ_ONCE(__session->active)))                    \
                return;                                                       \
-       if (unlikely(!READ_ONCE(__chan->enabled)))                            \
+       if (unlikely(!LTTNG_READ_ONCE(__chan->enabled)))                      \
                return;                                                       \
-       if (unlikely(!READ_ONCE(__event->enabled)))                           \
+       if (unlikely(!LTTNG_READ_ONCE(__event->enabled)))                     \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->pid_tracker.p);               \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf, current->tgid)))    \
@@ -1146,19 +1146,19 @@ static void __event_probe__##_name(void *__data, _proto)                      \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->uid_tracker.p);               \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf,                     \
-                       from_kuid(&init_user_ns, current_uid()))))            \
+                       lttng_current_uid())))                                \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->vuid_tracker.p);              \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf,                     \
-                       from_kuid(current_user_ns(), current_uid()))))        \
+                       lttng_current_vuid())))                               \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->gid_tracker.p);               \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf,                     \
-                       from_kgid(&init_user_ns, current_gid()))))            \
+                       lttng_current_gid())))                                \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->vgid_tracker.p);              \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf,                     \
-                       from_kgid(current_user_ns(), current_gid()))))        \
+                       lttng_current_vgid())))                               \
                return;                                                       \
        __orig_dynamic_len_offset = this_cpu_ptr(&lttng_dynamic_len_stack)->offset; \
        __dynamic_len_idx = __orig_dynamic_len_offset;                        \
@@ -1225,11 +1225,11 @@ static void __event_probe__##_name(void *__data)                              \
                                                                              \
        if (!_TP_SESSION_CHECK(session, __session))                           \
                return;                                                       \
-       if (unlikely(!READ_ONCE(__session->active)))                          \
+       if (unlikely(!LTTNG_READ_ONCE(__session->active)))                    \
                return;                                                       \
-       if (unlikely(!READ_ONCE(__chan->enabled)))                            \
+       if (unlikely(!LTTNG_READ_ONCE(__chan->enabled)))                      \
                return;                                                       \
-       if (unlikely(!READ_ONCE(__event->enabled)))                           \
+       if (unlikely(!LTTNG_READ_ONCE(__event->enabled)))                     \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->pid_tracker.p);               \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf, current->tgid)))    \
@@ -1239,19 +1239,19 @@ static void __event_probe__##_name(void *__data)                              \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->uid_tracker.p);               \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf,                     \
-                       from_kuid(&init_user_ns, current_uid()))))            \
+                       lttng_current_uid())))                                \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->vuid_tracker.p);              \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf,                     \
-                       from_kuid(current_user_ns(), current_uid()))))        \
+                       lttng_current_vuid())))                               \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->gid_tracker.p);               \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf,                     \
-                       from_kgid(&init_user_ns, current_gid()))))            \
+                       lttng_current_gid())))                                \
                return;                                                       \
        __lf = lttng_rcu_dereference(__session->vgid_tracker.p);              \
        if (__lf && likely(!lttng_id_tracker_lookup(__lf,                     \
-                       from_kgid(current_user_ns(), current_gid()))))        \
+                       lttng_current_vgid())))                               \
                return;                                                       \
        __orig_dynamic_len_offset = this_cpu_ptr(&lttng_dynamic_len_stack)->offset; \
        __dynamic_len_idx = __orig_dynamic_len_offset;                        \
@@ -1344,8 +1344,7 @@ static const struct lttng_event_desc __event_desc___##_map = {            \
 #define TP_ID1(_token, _system)        _token##_system
 #define TP_ID(_token, _system) TP_ID1(_token, _system)
 
-static const struct lttng_event_desc *TP_ID(__event_desc___, TRACE_SYSTEM)[] = {
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
+static const struct lttng_event_desc *TP_ID(__provider_event_desc___, TRACE_SYSTEM)[] = {
 };
 
 #undef TP_ID1
@@ -1363,8 +1362,8 @@ static const struct lttng_event_desc *TP_ID(__event_desc___, TRACE_SYSTEM)[] = {
 /* non-const because list head will be modified when registered. */
 static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = {
        .provider = __stringify(TRACE_SYSTEM),
-       .event_desc = TP_ID(__event_desc___, TRACE_SYSTEM),
-       .nr_events = ARRAY_SIZE(TP_ID(__event_desc___, TRACE_SYSTEM)),
+       .event_desc = TP_ID(__provider_event_desc___, TRACE_SYSTEM),
+       .nr_events = ARRAY_SIZE(TP_ID(__provider_event_desc___, TRACE_SYSTEM)),
        .head = { NULL, NULL },
        .lazy_init_head = { NULL, NULL },
        .lazy = 0,
@@ -1391,7 +1390,7 @@ static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = {
 #ifndef TP_MODULE_NOINIT
 static int TP_ID(__lttng_events_init__, TRACE_SYSTEM)(void)
 {
-       wrapper_vmalloc_sync_all();
+       wrapper_vmalloc_sync_mappings();
        return lttng_probe_register(&TP_ID(__probe_desc___, TRACE_SYSTEM));
 }
 
This page took 0.026754 seconds and 4 git commands to generate.