summaryrefslogtreecommitdiffstats
path: root/samples/kprobes
diff options
context:
space:
mode:
authorHuang Shijie <shijie.huang@arm.com>2016-05-21 02:04:33 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2016-05-21 02:58:30 +0200
commitd04659ac94528e9224dbf1aed37dd11dd952cacc (patch)
treeae3a0e641fc2d15309ac25fc40143cd9617b08c0 /samples/kprobes
parentkprobes: add the "tls" argument for j_do_fork (diff)
downloadlinux-d04659ac94528e9224dbf1aed37dd11dd952cacc.tar.xz
linux-d04659ac94528e9224dbf1aed37dd11dd952cacc.zip
samples/kprobes: add a new module parameter
Add a new module parameter which can be used as the symbol name. Without this patch, we can only test the "_do_fork" function with this kernel module. With this patch, the module becomes more flexible; we can test any functions with this module with # insmod kprobe_example.ko symbol="xxx" Link: http://lkml.kernel.org/r/1463535417-29637-1-git-send-email-shijie.huang@arm.com Signed-off-by: Huang Shijie <shijie.huang@arm.com> Cc: Petr Mladek <pmladek@suse.com> Cc: Steve Capper <steve.capper@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'samples/kprobes')
-rw-r--r--samples/kprobes/kprobe_example.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/samples/kprobes/kprobe_example.c b/samples/kprobes/kprobe_example.c
index 727eb21c9c56..2bb190dee66f 100644
--- a/samples/kprobes/kprobe_example.c
+++ b/samples/kprobes/kprobe_example.c
@@ -14,9 +14,13 @@
#include <linux/module.h>
#include <linux/kprobes.h>
+#define MAX_SYMBOL_LEN 64
+static char symbol[MAX_SYMBOL_LEN] = "_do_fork";
+module_param_string(symbol, symbol, sizeof(symbol), 0644);
+
/* For each probe you need to allocate a kprobe structure */
static struct kprobe kp = {
- .symbol_name = "_do_fork",
+ .symbol_name = symbol,
};
/* kprobe pre_handler: called just before the probed instruction is executed */