From: Hien Nguyen This patch moves the lock/unlock of the arch specific kprobe_flush_task() to the non-arch specific kprobe_flusk_task(). Signed-off-by: Hien Nguyen Acked-by: Prasanna S Panchamukhi Signed-off-by: Andrew Morton --- arch/i386/kernel/kprobes.c | 5 +---- include/linux/kprobes.h | 3 +-- kernel/kprobes.c | 5 ++++- 3 files changed, 6 insertions(+), 7 deletions(-) diff -puN arch/i386/kernel/kprobes.c~kprobes-moves-lock-unlock-to-non-arch-kprobe_flush_task arch/i386/kernel/kprobes.c --- 25/arch/i386/kernel/kprobes.c~kprobes-moves-lock-unlock-to-non-arch-kprobe_flush_task Fri May 20 14:39:23 2005 +++ 25-akpm/arch/i386/kernel/kprobes.c Fri May 20 14:39:23 2005 @@ -138,17 +138,14 @@ void arch_prepare_kretprobe(struct kretp } } -void arch_kprobe_flush_task(struct task_struct *tk, spinlock_t *kp_lock) +void arch_kprobe_flush_task(struct task_struct *tk) { - unsigned long flags = 0; struct kretprobe_instance *ri; - spin_lock_irqsave(kp_lock, flags); while ((ri = get_rp_inst_tsk(tk)) != NULL) { *((unsigned long *)(ri->stack_addr)) = (unsigned long) ri->ret_addr; recycle_rp_inst(ri); } - spin_unlock_irqrestore(kp_lock, flags); } /* diff -puN include/linux/kprobes.h~kprobes-moves-lock-unlock-to-non-arch-kprobe_flush_task include/linux/kprobes.h --- 25/include/linux/kprobes.h~kprobes-moves-lock-unlock-to-non-arch-kprobe_flush_task Fri May 20 14:39:23 2005 +++ 25-akpm/include/linux/kprobes.h Fri May 20 14:39:23 2005 @@ -33,7 +33,6 @@ #include #include #include -#include #include @@ -101,7 +100,7 @@ extern void trampoline_post_handler(stru unsigned long flags); extern struct task_struct *arch_get_kprobe_task(void *ptr); extern void arch_prepare_kretprobe(struct kretprobe *rp, struct pt_regs *regs); -extern void arch_kprobe_flush_task(struct task_struct *tk, spinlock_t *kp_lock); +extern void arch_kprobe_flush_task(struct task_struct *tk); #else /* ARCH_SUPPORTS_KRETPROBES */ static inline void kretprobe_trampoline(void) { diff -puN kernel/kprobes.c~kprobes-moves-lock-unlock-to-non-arch-kprobe_flush_task kernel/kprobes.c --- 25/kernel/kprobes.c~kprobes-moves-lock-unlock-to-non-arch-kprobe_flush_task Fri May 20 14:39:23 2005 +++ 25-akpm/kernel/kprobes.c Fri May 20 14:39:23 2005 @@ -228,7 +228,10 @@ struct kretprobe_instance *get_rp_inst_t */ void kprobe_flush_task(struct task_struct *tk) { - arch_kprobe_flush_task(tk, &kprobe_lock); + unsigned long flags = 0; + spin_lock_irqsave(&kprobe_lock, flags); + arch_kprobe_flush_task(tk); + spin_unlock_irqrestore(&kprobe_lock, flags); } /* _