mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
powerpc/kprobes: Use preempt_enable() rather than the no_resched variant
preempt_enable_no_resched() is just the same as preempt_enable() when we are in a irqs disabled context. kprobe_handler() and the post/fault handlers are all called with irqs disabled. As such, convert those to just use preempt_enable(). Reported-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/72639f75fe66f931ec8c2165276ffbfb0fe1006f.1666262278.git.naveen.n.rao@linux.vnet.ibm.com
This commit is contained in:
parent
04ec5d5782
commit
266b1991a4
|
|
@ -369,7 +369,7 @@ int kprobe_handler(struct pt_regs *regs)
|
|||
|
||||
if (ret > 0) {
|
||||
restore_previous_kprobe(kcb);
|
||||
preempt_enable_no_resched();
|
||||
preempt_enable();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -382,7 +382,7 @@ int kprobe_handler(struct pt_regs *regs)
|
|||
if (p->pre_handler && p->pre_handler(p, regs)) {
|
||||
/* handler changed execution path, so skip ss setup */
|
||||
reset_current_kprobe();
|
||||
preempt_enable_no_resched();
|
||||
preempt_enable();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -395,7 +395,7 @@ int kprobe_handler(struct pt_regs *regs)
|
|||
|
||||
kcb->kprobe_status = KPROBE_HIT_SSDONE;
|
||||
reset_current_kprobe();
|
||||
preempt_enable_no_resched();
|
||||
preempt_enable();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -404,7 +404,7 @@ int kprobe_handler(struct pt_regs *regs)
|
|||
return 1;
|
||||
|
||||
no_kprobe:
|
||||
preempt_enable_no_resched();
|
||||
preempt_enable();
|
||||
return ret;
|
||||
}
|
||||
NOKPROBE_SYMBOL(kprobe_handler);
|
||||
|
|
@ -490,7 +490,7 @@ int kprobe_post_handler(struct pt_regs *regs)
|
|||
}
|
||||
reset_current_kprobe();
|
||||
out:
|
||||
preempt_enable_no_resched();
|
||||
preempt_enable();
|
||||
|
||||
/*
|
||||
* if somebody else is singlestepping across a probe point, msr
|
||||
|
|
@ -529,7 +529,7 @@ int kprobe_fault_handler(struct pt_regs *regs, int trapnr)
|
|||
restore_previous_kprobe(kcb);
|
||||
else
|
||||
reset_current_kprobe();
|
||||
preempt_enable_no_resched();
|
||||
preempt_enable();
|
||||
break;
|
||||
case KPROBE_HIT_ACTIVE:
|
||||
case KPROBE_HIT_SSDONE:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user