Răsfoiți Sursa

mn10300: get rid of calling do_notify_resume() when returning to kernel mode

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 13 ani în urmă
părinte
comite
6fdb6fbecb
2 a modificat fișierele cu 4 adăugiri și 5 ștergeri
  1. 4 0
      arch/mn10300/kernel/entry.S
  2. 0 5
      arch/mn10300/kernel/signal.c

+ 4 - 0
arch/mn10300/kernel/entry.S

@@ -108,6 +108,10 @@ restore_all:
 ###############################################################################
 	ALIGN
 syscall_exit_work:
+	mov	(REG_EPSW,fp),d0
+	and	EPSW_nSL,d0
+	beq	resume_kernel		# returning to supervisor mode
+
 	btst	_TIF_SYSCALL_TRACE,d2
 	beq	work_pending
 	LOCAL_IRQ_ENABLE		# could let syscall_trace_exit() call

+ 0 - 5
arch/mn10300/kernel/signal.c

@@ -475,11 +475,6 @@ static void do_signal(struct pt_regs *regs)
 	siginfo_t info;
 	int signr;
 
-	/* we want the common case to go fast, which is why we may in certain
-	 * cases get here from kernel mode */
-	if (!user_mode(regs))
-		return;
-
 	signr = get_signal_to_deliver(&info, &ka, regs, NULL);
 	if (signr > 0) {
 		if (handle_signal(signr, &info, &ka, regs) == 0) {