Drop support for kernels < 4.4 from 'wrapper/tracepoint.h'
authorMichael Jeanson <mjeanson@efficios.com>
Fri, 18 Nov 2022 21:42:38 +0000 (16:42 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 23 Nov 2022 20:03:33 +0000 (15:03 -0500)
Change-Id: Icab9656bc3d9d22d9887191af2f7f465323c5c2a
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/wrapper/tracepoint.h
src/lttng-events.c
src/lttng-statedump-impl.c
src/lttng-syscalls.c
src/tests/probes/lttng-test.c

index 10c9fce6e5eebb97997d4271ed282c211367a1a1..7ed1069d9e2f2c32037451a431d186d712c72300 100644 (file)
@@ -11,6 +11,7 @@
 #define _LTTNG_WRAPPER_TRACEPOINT_H
 
 #include <lttng/kernel-version.h>
+#include <lttng/tracepoint.h>
 #include <linux/tracepoint.h>
 #include <linux/module.h>
 
        DEFINE_TRACE(name)
 #endif
 
-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0))
-
-#include <lttng/tracepoint.h>
-
-#define lttng_wrapper_tracepoint_probe_register lttng_tracepoint_probe_register
-#define lttng_wrapper_tracepoint_probe_unregister lttng_tracepoint_probe_unregister
-
-#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
-
-#define lttng_wrapper_tracepoint_probe_register tracepoint_probe_register
-#define lttng_wrapper_tracepoint_probe_unregister tracepoint_probe_unregister
-
-static inline
-int lttng_tracepoint_init(void)
-{
-       return 0;
-}
-
-static inline
-void lttng_tracepoint_exit(void)
-{
-}
-
-#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */
-
-#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG))
-
-#include <linux/kallsyms.h>
-#include <wrapper/kallsyms.h>
-
-static inline
-int wrapper_tracepoint_module_notify(struct notifier_block *nb,
-               unsigned long val, struct module *mod)
-{
-       int (*tracepoint_module_notify_sym)(struct notifier_block *nb,
-                       unsigned long val, struct module *mod);
-
-       tracepoint_module_notify_sym =
-               (void *) kallsyms_lookup_funcptr("tracepoint_module_notify");
-       if (tracepoint_module_notify_sym) {
-               return tracepoint_module_notify_sym(nb, val, mod);
-       } else {
-               printk_once(KERN_WARNING "LTTng: tracepoint_module_notify symbol lookup failed. It probably means you kernel don't need this work-around. Please consider upgrading LTTng modules to make this warning go away.\n");
-               return -ENOSYS;
-       }
-}
-
-/*
- * No canary for 'tracepoint_module_notify()', it's only defined in 'kernel/tracepoint.c'.
- *
- * static inline
- * int __canary__tracepoint_module_notify(struct notifier_block *nb,
- *             unsigned long val, struct module *mod)
- * {
- *     return tracepoint_module_notify(nb, val, mod);
- * }
- */
-
-#endif /* #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG)) */
-
-#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE))
-
-static inline
-int wrapper_lttng_fixup_sig(struct module *mod)
-{
-       int ret = 0;
-
-       /*
-        * This is for module.c confusing force loaded modules with
-        * unsigned modules.
-        */
-       if (!THIS_MODULE->sig_ok &&
-                       THIS_MODULE->taints & (1U << TAINT_FORCED_MODULE)) {
-               THIS_MODULE->taints &= ~(1U << TAINT_FORCED_MODULE);
-               ret = wrapper_tracepoint_module_notify(NULL,
-                               MODULE_STATE_COMING, mod);
-               THIS_MODULE->taints |= (1U << TAINT_FORCED_MODULE);
-       }
-       return ret;
-}
-
-#else /* #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE)) */
-
-static inline
-int wrapper_lttng_fixup_sig(struct module *mod)
-{
-       return 0;
-}
-
-#endif /* #else #if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,15,0) && defined(CONFIG_MODULE_SIG) && defined(MODULE)) */
-
 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,19,0))
 static inline struct tracepoint *lttng_tracepoint_ptr_deref(tracepoint_ptr_t *p)
 {
index 9df03392d90856cf4236b2827c5051d063870756..827c9d4c3cae839e859c6fb9e4397b11e882d988 100644 (file)
@@ -1345,7 +1345,7 @@ void register_event(struct lttng_kernel_event_common *event)
        desc = event->priv->desc;
        switch (event->priv->instrumentation) {
        case LTTNG_KERNEL_ABI_TRACEPOINT:
-               ret = lttng_wrapper_tracepoint_probe_register(desc->event_kname,
+               ret = lttng_tracepoint_probe_register(desc->event_kname,
                                                  desc->tp_class->probe_callback,
                                                  event);
                break;
@@ -1395,7 +1395,7 @@ void unregister_event(struct lttng_kernel_event_common *event)
        desc = event_priv->desc;
        switch (event_priv->instrumentation) {
        case LTTNG_KERNEL_ABI_TRACEPOINT:
-               ret = lttng_wrapper_tracepoint_probe_unregister(event_priv->desc->event_kname,
+               ret = lttng_tracepoint_probe_unregister(event_priv->desc->event_kname,
                                                  event_priv->desc->tp_class->probe_callback,
                                                  event);
                break;
@@ -4152,9 +4152,6 @@ static int __init lttng_events_init(void)
 {
        int ret;
 
-       ret = wrapper_lttng_fixup_sig(THIS_MODULE);
-       if (ret)
-               return ret;
        ret = wrapper_get_pfnblock_flags_mask_init();
        if (ret)
                return ret;
index 9d708af9f751b59286292ff6a7edfa17735e7a08..0593f4c8bd22ee3e6fbd62f2535ba08a4e97eff0 100644 (file)
@@ -805,13 +805,6 @@ EXPORT_SYMBOL_GPL(lttng_statedump_start);
 static
 int __init lttng_statedump_init(void)
 {
-       /*
-        * Allow module to load even if the fixup cannot be done. This
-        * will allow seemless transition when the underlying issue fix
-        * is merged into the Linux kernel, and when tracepoint.c
-        * "tracepoint_module_notify" is turned into a static function.
-        */
-       (void) wrapper_lttng_fixup_sig(THIS_MODULE);
        return 0;
 }
 
index d93df2e1306e00ca0e60c3504177e7254b1a692e..2fb6eda314390cefc10529a37332aaad6848f7d8 100644 (file)
@@ -796,17 +796,17 @@ int lttng_event_enabler_create_syscall_events_if_missing(struct lttng_event_enab
        }
 
        if (!syscall_table->sys_enter_registered) {
-               ret = lttng_wrapper_tracepoint_probe_register("sys_enter",
+               ret = lttng_tracepoint_probe_register("sys_enter",
                                (void *) syscall_entry_event_probe, syscall_table);
                if (ret)
                        return ret;
                syscall_table->sys_enter_registered = 1;
        }
        if (!syscall_table->sys_exit_registered) {
-               ret = lttng_wrapper_tracepoint_probe_register("sys_exit",
+               ret = lttng_tracepoint_probe_register("sys_exit",
                                (void *) syscall_exit_event_probe, syscall_table);
                if (ret) {
-                       WARN_ON_ONCE(lttng_wrapper_tracepoint_probe_unregister("sys_enter",
+                       WARN_ON_ONCE(lttng_tracepoint_probe_unregister("sys_enter",
                                (void *) syscall_entry_event_probe, syscall_table));
                        return ret;
                }
@@ -825,14 +825,14 @@ int lttng_syscalls_unregister_syscall_table(struct lttng_kernel_syscall_table *s
        if (!syscall_table->syscall_dispatch)
                return 0;
        if (syscall_table->sys_enter_registered) {
-               ret = lttng_wrapper_tracepoint_probe_unregister("sys_enter",
+               ret = lttng_tracepoint_probe_unregister("sys_enter",
                                (void *) syscall_entry_event_probe, syscall_table);
                if (ret)
                        return ret;
                syscall_table->sys_enter_registered = 0;
        }
        if (syscall_table->sys_exit_registered) {
-               ret = lttng_wrapper_tracepoint_probe_unregister("sys_exit",
+               ret = lttng_tracepoint_probe_unregister("sys_exit",
                                (void *) syscall_exit_event_probe, syscall_table);
                if (ret)
                        return ret;
index 86007e5e73d2cc66d28fdce600fdf49c4ad0a912..b18e5fafedcc30ac5e28ce47d721fb8a03bac2dd 100644 (file)
@@ -101,7 +101,6 @@ int __init lttng_test_init(void)
 {
        int ret = 0;
 
-       (void) wrapper_lttng_fixup_sig(THIS_MODULE);
        wrapper_vmalloc_sync_mappings();
        lttng_test_filter_event_dentry =
                        proc_create_data(LTTNG_TEST_FILTER_EVENT_FILE,
This page took 0.031424 seconds and 4 git commands to generate.