#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)
{
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;
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;
{
int ret;
- ret = wrapper_lttng_fixup_sig(THIS_MODULE);
- if (ret)
- return ret;
ret = wrapper_get_pfnblock_flags_mask_init();
if (ret)
return ret;
}
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;
}
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;