diff options
author | Huang Shijie <shijie.huang@arm.com> | 2016-05-20 17:04:33 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-20 17:58:30 -0700 |
commit | d04659ac94528e9224dbf1aed37dd11dd952cacc (patch) | |
tree | ae3a0e641fc2d15309ac25fc40143cd9617b08c0 /samples | |
parent | 603ac5df86df5bfd26ed4d9c310dd196b07590ae (diff) | |
download | op-kernel-dev-d04659ac94528e9224dbf1aed37dd11dd952cacc.zip op-kernel-dev-d04659ac94528e9224dbf1aed37dd11dd952cacc.tar.gz |
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')
-rw-r--r-- | samples/kprobes/kprobe_example.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/samples/kprobes/kprobe_example.c b/samples/kprobes/kprobe_example.c index 727eb21..2bb190d 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 */ |