aboutsummaryrefslogtreecommitdiffstats
path: root/samples
diff options
context:
space:
mode:
authorMasami Hiramatsu <mhiramat@kernel.org>2017-10-05 19:15:57 -0400
committerIngo Molnar <mingo@kernel.org>2017-10-20 05:02:55 -0400
commit9be95bdc53c12ada23e39027237fd05e1393d893 (patch)
tree391e26645f79b467a0dc574f2373e367d2154079 /samples
parent2c7d662e2647aa55fa56dc449b3878ac24e17adf (diff)
kprobes: Remove the jprobes sample code
Remove the jprobes sample module because jprobes are deprecated. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com> Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> Cc: David S . Miller <davem@davemloft.net> Cc: Ian McDonald <ian.mcdonald@jandi.co.nz> Cc: Kees Cook <keescook@chromium.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Paul E . McKenney <paulmck@linux.vnet.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephen Hemminger <stephen@networkplumber.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vlad Yasevich <vyasevich@gmail.com> Link: http://lkml.kernel.org/r/150724535709.5014.7261513316230565780.stgit@devbox Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'samples')
-rw-r--r--samples/kprobes/Makefile2
-rw-r--r--samples/kprobes/jprobe_example.c67
2 files changed, 1 insertions, 68 deletions
diff --git a/samples/kprobes/Makefile b/samples/kprobes/Makefile
index 68739bc4fc6a..880e54d2c082 100644
--- a/samples/kprobes/Makefile
+++ b/samples/kprobes/Makefile
@@ -1,5 +1,5 @@
1# builds the kprobes example kernel modules; 1# builds the kprobes example kernel modules;
2# then to use one (as root): insmod <module_name.ko> 2# then to use one (as root): insmod <module_name.ko>
3 3
4obj-$(CONFIG_SAMPLE_KPROBES) += kprobe_example.o jprobe_example.o 4obj-$(CONFIG_SAMPLE_KPROBES) += kprobe_example.o
5obj-$(CONFIG_SAMPLE_KRETPROBES) += kretprobe_example.o 5obj-$(CONFIG_SAMPLE_KRETPROBES) += kretprobe_example.o
diff --git a/samples/kprobes/jprobe_example.c b/samples/kprobes/jprobe_example.c
deleted file mode 100644
index e3c0a40909f7..000000000000
--- a/samples/kprobes/jprobe_example.c
+++ /dev/null
@@ -1,67 +0,0 @@
1/*
2 * Here's a sample kernel module showing the use of jprobes to dump
3 * the arguments of _do_fork().
4 *
5 * For more information on theory of operation of jprobes, see
6 * Documentation/kprobes.txt
7 *
8 * Build and insert the kernel module as done in the kprobe example.
9 * You will see the trace data in /var/log/messages and on the
10 * console whenever _do_fork() is invoked to create a new process.
11 * (Some messages may be suppressed if syslogd is configured to
12 * eliminate duplicate messages.)
13 */
14
15#include <linux/kernel.h>
16#include <linux/module.h>
17#include <linux/kprobes.h>
18
19/*
20 * Jumper probe for _do_fork.
21 * Mirror principle enables access to arguments of the probed routine
22 * from the probe handler.
23 */
24
25/* Proxy routine having the same arguments as actual _do_fork() routine */
26static long j_do_fork(unsigned long clone_flags, unsigned long stack_start,
27 unsigned long stack_size, int __user *parent_tidptr,
28 int __user *child_tidptr, unsigned long tls)
29{
30 pr_info("jprobe: clone_flags = 0x%lx, stack_start = 0x%lx "
31 "stack_size = 0x%lx\n", clone_flags, stack_start, stack_size);
32
33 /* Always end with a call to jprobe_return(). */
34 jprobe_return();
35 return 0;
36}
37
38static struct jprobe my_jprobe = {
39 .entry = j_do_fork,
40 .kp = {
41 .symbol_name = "_do_fork",
42 },
43};
44
45static int __init jprobe_init(void)
46{
47 int ret;
48
49 ret = register_jprobe(&my_jprobe);
50 if (ret < 0) {
51 pr_err("register_jprobe failed, returned %d\n", ret);
52 return -1;
53 }
54 pr_info("Planted jprobe at %p, handler addr %p\n",
55 my_jprobe.kp.addr, my_jprobe.entry);
56 return 0;
57}
58
59static void __exit jprobe_exit(void)
60{
61 unregister_jprobe(&my_jprobe);
62 pr_info("jprobe at %p unregistered\n", my_jprobe.kp.addr);
63}
64
65module_init(jprobe_init)
66module_exit(jprobe_exit)
67MODULE_LICENSE("GPL");