Commit 266b1991 authored by Naveen N. Rao's avatar Naveen N. Rao Committed by Michael Ellerman
Browse files

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: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/72639f75fe66f931ec8c2165276ffbfb0fe1006f.1666262278.git.naveen.n.rao@linux.vnet.ibm.com
parent 04ec5d57
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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: