diff options
author | Ananth N Mavinakayanahalli <ananth@in.ibm.com> | 2005-11-07 04:00:10 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-07 10:53:45 -0500 |
commit | 0dc036c91ac11b2b76bb91b59d8c7af919aa4a8d (patch) | |
tree | 88318deadc78c7dd416b60f2fac4b8eef1f61a28 /include | |
parent | 8a5c4dc5e5d72b7802f5647082ccf3861a94f013 (diff) |
[PATCH] Kprobes: Track kprobe on a per_cpu basis - ppc64 changes
PPC64 changes to track kprobe execution on a per-cpu basis. We now track the
kprobe state machine independently on each cpu using an arch specific kprobe
control block.
Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-powerpc/kprobes.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/asm-powerpc/kprobes.h b/include/asm-powerpc/kprobes.h index b2f09f17fbe0..6cd0a3bfa280 100644 --- a/include/asm-powerpc/kprobes.h +++ b/include/asm-powerpc/kprobes.h | |||
@@ -27,6 +27,7 @@ | |||
27 | */ | 27 | */ |
28 | #include <linux/types.h> | 28 | #include <linux/types.h> |
29 | #include <linux/ptrace.h> | 29 | #include <linux/ptrace.h> |
30 | #include <linux/percpu.h> | ||
30 | 31 | ||
31 | struct pt_regs; | 32 | struct pt_regs; |
32 | 33 | ||
@@ -53,6 +54,20 @@ struct arch_specific_insn { | |||
53 | kprobe_opcode_t *insn; | 54 | kprobe_opcode_t *insn; |
54 | }; | 55 | }; |
55 | 56 | ||
57 | struct prev_kprobe { | ||
58 | struct kprobe *kp; | ||
59 | unsigned long status; | ||
60 | unsigned long saved_msr; | ||
61 | }; | ||
62 | |||
63 | /* per-cpu kprobe control block */ | ||
64 | struct kprobe_ctlblk { | ||
65 | unsigned long kprobe_status; | ||
66 | unsigned long kprobe_saved_msr; | ||
67 | struct pt_regs jprobe_saved_regs; | ||
68 | struct prev_kprobe prev_kprobe; | ||
69 | }; | ||
70 | |||
56 | #ifdef CONFIG_KPROBES | 71 | #ifdef CONFIG_KPROBES |
57 | extern int kprobe_exceptions_notify(struct notifier_block *self, | 72 | extern int kprobe_exceptions_notify(struct notifier_block *self, |
58 | unsigned long val, void *data); | 73 | unsigned long val, void *data); |