[PATCH] ppc64: fix up()/down() usage for kprobe_mutex
The incorrect kprobe_mutex usage on x86_64 had percolated to ppc64 too. First noticed by Yanmin Zhang. Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
702c96d550
commit
2d8ab6ad6e
@@ -59,9 +59,9 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
|
|||||||
|
|
||||||
/* insn must be on a special executable page on ppc64 */
|
/* insn must be on a special executable page on ppc64 */
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
up(&kprobe_mutex);
|
|
||||||
p->ainsn.insn = get_insn_slot();
|
|
||||||
down(&kprobe_mutex);
|
down(&kprobe_mutex);
|
||||||
|
p->ainsn.insn = get_insn_slot();
|
||||||
|
up(&kprobe_mutex);
|
||||||
if (!p->ainsn.insn)
|
if (!p->ainsn.insn)
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
}
|
}
|
||||||
@@ -90,9 +90,9 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
|
|||||||
|
|
||||||
void __kprobes arch_remove_kprobe(struct kprobe *p)
|
void __kprobes arch_remove_kprobe(struct kprobe *p)
|
||||||
{
|
{
|
||||||
up(&kprobe_mutex);
|
|
||||||
free_insn_slot(p->ainsn.insn);
|
|
||||||
down(&kprobe_mutex);
|
down(&kprobe_mutex);
|
||||||
|
free_insn_slot(p->ainsn.insn);
|
||||||
|
up(&kprobe_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
|
static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
|
||||||
|
Reference in New Issue
Block a user