Commit 8f9b1528 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Linus Torvalds

kprobes: support kretprobe and jprobe per-probe disabling

Add disable/enable_kretprobe() and disable/enable_jprobe().
Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
Acked-by: default avatarAnanth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent de5bd88d
...@@ -365,21 +365,25 @@ probes) in the specified array, they clear the addr field of those ...@@ -365,21 +365,25 @@ probes) in the specified array, they clear the addr field of those
incorrect probes. However, other probes in the array are incorrect probes. However, other probes in the array are
unregistered correctly. unregistered correctly.
4.7 disable_kprobe 4.7 disable_*probe
#include <linux/kprobes.h> #include <linux/kprobes.h>
int disable_kprobe(struct kprobe *kp); int disable_kprobe(struct kprobe *kp);
int disable_kretprobe(struct kretprobe *rp);
int disable_jprobe(struct jprobe *jp);
Temporarily disables the specified kprobe. You can enable it again by using Temporarily disables the specified *probe. You can enable it again by using
enable_kprobe(). You must specify the kprobe which has been registered. enable_*probe(). You must specify the probe which has been registered.
4.8 enable_kprobe 4.8 enable_*probe
#include <linux/kprobes.h> #include <linux/kprobes.h>
int enable_kprobe(struct kprobe *kp); int enable_kprobe(struct kprobe *kp);
int enable_kretprobe(struct kretprobe *rp);
int enable_jprobe(struct jprobe *jp);
Enables kprobe which has been disabled by disable_kprobe(). You must specify Enables *probe which has been disabled by disable_*probe(). You must specify
the kprobe which has been registered. the probe which has been registered.
5. Kprobes Features and Limitations 5. Kprobes Features and Limitations
......
...@@ -371,4 +371,21 @@ static inline int enable_kprobe(struct kprobe *kp) ...@@ -371,4 +371,21 @@ static inline int enable_kprobe(struct kprobe *kp)
return -ENOSYS; return -ENOSYS;
} }
#endif /* CONFIG_KPROBES */ #endif /* CONFIG_KPROBES */
static inline int disable_kretprobe(struct kretprobe *rp)
{
return disable_kprobe(&rp->kp);
}
static inline int enable_kretprobe(struct kretprobe *rp)
{
return enable_kprobe(&rp->kp);
}
static inline int disable_jprobe(struct jprobe *jp)
{
return disable_kprobe(&jp->kp);
}
static inline int enable_jprobe(struct jprobe *jp)
{
return enable_kprobe(&jp->kp);
}
#endif /* _LINUX_KPROBES_H */ #endif /* _LINUX_KPROBES_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment