X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Fwrapper%2Ftracepoint.h;h=7ed1069d9e2f2c32037451a431d186d712c72300;hb=a6837bed45b070b8a90292f92e3adc81c974e324;hp=10c9fce6e5eebb97997d4271ed282c211367a1a1;hpb=260baa9bffe791b6c0a6b2fdf2c05f0dd6175a2c;p=lttng-modules.git diff --git a/include/wrapper/tracepoint.h b/include/wrapper/tracepoint.h index 10c9fce6..7ed1069d 100644 --- a/include/wrapper/tracepoint.h +++ b/include/wrapper/tracepoint.h @@ -11,6 +11,7 @@ #define _LTTNG_WRAPPER_TRACEPOINT_H #include +#include #include #include @@ -22,97 +23,6 @@ DEFINE_TRACE(name) #endif -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) - -#include - -#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 -#include - -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) {