diff options
author | bibo, mao <bibo.mao@intel.com> | 2006-07-30 03:03:26 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-31 13:28:38 -0700 |
commit | a9ad965ea9a6d719daf333847a2ceb0e363994bd (patch) | |
tree | 9ecb71f533c16eb790909f13fefd67fd939ffb2b /kernel | |
parent | 25c8716cb08dea386c7d6220b82eba732ccbf976 (diff) | |
download | op-kernel-dev-a9ad965ea9a6d719daf333847a2ceb0e363994bd.zip op-kernel-dev-a9ad965ea9a6d719daf333847a2ceb0e363994bd.tar.gz |
[PATCH] IA64: kprobe invalidate icache of jump buffer
Kprobe inserts breakpoint instruction in probepoint and then jumps to
instruction slot when breakpoint is hit, the instruction slot icache must
be consistent with dcache. Here is the patch which invalidates instruction
slot icache area.
Without this patch, in some machines there will be fault when executing
instruction slot where icache content is inconsistent with dcache.
Signed-off-by: bibo,mao <bibo.mao@intel.com>
Acked-by: "Luck, Tony" <tony.luck@intel.com>
Acked-by: Keshavamurthy Anil S <anil.s.keshavamurthy@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/kprobes.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 64aab08..3f57dfd 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -393,6 +393,7 @@ static int __kprobes add_new_kprobe(struct kprobe *old_p, struct kprobe *p) static inline void add_aggr_kprobe(struct kprobe *ap, struct kprobe *p) { copy_kprobe(p, ap); + flush_insn_slot(ap); ap->addr = p->addr; ap->pre_handler = aggr_pre_handler; ap->fault_handler = aggr_fault_handler; |