From: Michael Jeanson Date: Fri, 18 Nov 2022 17:34:26 +0000 (-0500) Subject: Drop 'linux/uprobes.h' wrapper X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=853f5b15987181812b9973d86607cb9d76c850b9;p=lttng-modules.git Drop 'linux/uprobes.h' wrapper Change-Id: I6870122c24a9b8cb3cf8c5c0c75a78c2ec96f32b Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- diff --git a/include/lttng/events.h b/include/lttng/events.h index ee2552ba..22f654be 100644 --- a/include/lttng/events.h +++ b/include/lttng/events.h @@ -16,7 +16,8 @@ #include #include #include -#include +#include + #include #include #include diff --git a/include/wrapper/uprobes.h b/include/wrapper/uprobes.h deleted file mode 100644 index 9cbbe3b2..00000000 --- a/include/wrapper/uprobes.h +++ /dev/null @@ -1,102 +0,0 @@ -/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only) - * - * wrapper/uprobes.h - * - * wrapper around uprobes. Using KALLSYMS to get its address when - * available, else we need to have a kernel that exports this function to GPL - * modules. - * - * Copyright (C) 2013 Yannick Brosseau - * Copyright (C) 2017 Francis Deslauriers - * - */ - -#ifndef _LTTNG_WRAPPER_UPROBES_H -#define _LTTNG_WRAPPER_UPROBES_H - -#include - -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,5,0)) -#include - -/* Use kallsym lookup for version before 3.9. */ -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) - -static inline -int wrapper_uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) -{ - return uprobe_register(inode, offset, uc); -} - -static inline -void wrapper_uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) -{ - uprobe_unregister(inode, offset, uc); -} - -#else /* Version < 3.9, use kallsym lookup. */ -#include "kallsyms.h" - -static inline -int wrapper_uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) -{ - int (*uprobe_register_sym)(struct inode *inode, loff_t offset, struct uprobe_consumer *uc); - - uprobe_register_sym = (void *) kallsyms_lookup_funcptr("uprobe_register"); - - if (uprobe_register_sym) { - return uprobe_register_sym(inode, offset, uc); - } else { - printk(KERN_WARNING "LTTng: uprobe_register symbol lookup failed.\n"); - return -EINVAL; - } -} - -/* - * Canary function to check for 'uprobe_register()' at compile time. - * - * From 'include/linux/uprobes.h': - * - * extern int uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *uc); - */ -static inline -int __canary__uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) -{ - return uprobe_register(inode, offset, uc); -} - -static inline -void wrapper_uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) -{ - int (*uprobe_unregister_sym)(struct inode *inode, loff_t offset, struct uprobe_consumer *uc); - - uprobe_unregister_sym = (void *) kallsyms_lookup_funcptr("uprobe_unregister"); - - if (uprobe_unregister_sym) { - uprobe_unregister_sym(inode, offset, uc); - } else { - printk(KERN_WARNING "LTTng: uprobe_unregister symbol lookup failed.\n"); - WARN_ON(1); - } -} - -/* - * Canary function to check for 'uprobe_unregister()' at compile time. - * - * From 'include/linux/uprobes.h': - * - * extern void uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consumer *uc); - */ -static inline -void __canary__uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consumer *uc) -{ - uprobe_unregister(inode, offset, uc); -} - -#endif -#else -/* Version < 3.5, before uprobe was added. */ -struct uprobe_consumer {}; - -#endif -#endif diff --git a/src/probes/lttng-uprobes.c b/src/probes/lttng-uprobes.c index a3cef0bf..549fa662 100644 --- a/src/probes/lttng-uprobes.c +++ b/src/probes/lttng-uprobes.c @@ -15,12 +15,13 @@ #include #include #include +#include + #include #include #include #include #include -#include #include static @@ -201,7 +202,7 @@ int lttng_uprobes_add_callsite(struct lttng_uprobe *uprobe, goto register_error; } - ret = wrapper_uprobe_register(uprobe->inode, + ret = uprobe_register(uprobe->inode, uprobe_handler->offset, &uprobe_handler->up_consumer); if (ret) { printk(KERN_WARNING "LTTng: Error registering probe on inode %lu " @@ -280,7 +281,7 @@ void lttng_uprobes_unregister(struct inode *inode, struct list_head *head) * and free the struct. */ list_for_each_entry_safe(iter, tmp, head, node) { - wrapper_uprobe_unregister(inode, iter->offset, &iter->up_consumer); + uprobe_unregister(inode, iter->offset, &iter->up_consumer); list_del(&iter->node); kfree(iter); }