Commit bf343dfd authored by Al Viro's avatar Al Viro

don't call try_to_freeze() from do_signal()

get_signal_to_deliver() will handle it itself
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent a610d6e6
...@@ -285,9 +285,6 @@ asmlinkage void do_signal(struct pt_regs *regs) ...@@ -285,9 +285,6 @@ asmlinkage void do_signal(struct pt_regs *regs)
current->thread.esp0 = (unsigned long)regs; current->thread.esp0 = (unsigned long)regs;
if (try_to_freeze())
goto no_signal;
signr = get_signal_to_deliver(&info, &ka, regs, NULL); signr = get_signal_to_deliver(&info, &ka, regs, NULL);
if (signr > 0) { if (signr > 0) {
/* Whee! Actually deliver the signal. */ /* Whee! Actually deliver the signal. */
...@@ -295,7 +292,6 @@ asmlinkage void do_signal(struct pt_regs *regs) ...@@ -295,7 +292,6 @@ asmlinkage void do_signal(struct pt_regs *regs)
return; return;
} }
no_signal:
/* Did we come from a system call? */ /* Did we come from a system call? */
if (regs->orig_p0 >= 0) if (regs->orig_p0 >= 0)
/* Restart the system call - no handlers present */ /* Restart the system call - no handlers present */
......
...@@ -491,16 +491,12 @@ static void do_signal(void) ...@@ -491,16 +491,12 @@ static void do_signal(void)
if (!user_mode(__frame)) if (!user_mode(__frame))
return; return;
if (try_to_freeze())
goto no_signal;
signr = get_signal_to_deliver(&info, &ka, __frame, NULL); signr = get_signal_to_deliver(&info, &ka, __frame, NULL);
if (signr > 0) { if (signr > 0) {
handle_signal(signr, &info, &ka); handle_signal(signr, &info, &ka);
return; return;
} }
no_signal:
/* Did we come from a system call? */ /* Did we come from a system call? */
if (__frame->syscallno != -1) { if (__frame->syscallno != -1) {
/* Restart the system call - no handlers present */ /* Restart the system call - no handlers present */
......
...@@ -466,9 +466,6 @@ statis void do_signal(struct pt_regs *regs) ...@@ -466,9 +466,6 @@ statis void do_signal(struct pt_regs *regs)
if ((regs->ccr & 0x10)) if ((regs->ccr & 0x10))
return; return;
if (try_to_freeze())
goto no_signal;
current->thread.esp0 = (unsigned long) regs; current->thread.esp0 = (unsigned long) regs;
signr = get_signal_to_deliver(&info, &ka, regs, NULL); signr = get_signal_to_deliver(&info, &ka, regs, NULL);
...@@ -477,7 +474,6 @@ statis void do_signal(struct pt_regs *regs) ...@@ -477,7 +474,6 @@ statis void do_signal(struct pt_regs *regs)
handle_signal(signr, &info, &ka, regs); handle_signal(signr, &info, &ka, regs);
return; return;
} }
no_signal:
/* Did we come from a system call? */ /* Did we come from a system call? */
if (regs->orig_er0 >= 0) { if (regs->orig_er0 >= 0) {
/* Restart the system call - no handlers present */ /* Restart the system call - no handlers present */
......
...@@ -205,9 +205,6 @@ static void do_signal(struct pt_regs *regs) ...@@ -205,9 +205,6 @@ static void do_signal(struct pt_regs *regs)
if (!user_mode(regs)) if (!user_mode(regs))
return; return;
if (try_to_freeze())
goto no_signal;
signo = get_signal_to_deliver(&info, &sigact, regs, NULL); signo = get_signal_to_deliver(&info, &sigact, regs, NULL);
if (signo > 0) { if (signo > 0) {
...@@ -215,7 +212,6 @@ static void do_signal(struct pt_regs *regs) ...@@ -215,7 +212,6 @@ static void do_signal(struct pt_regs *regs)
return; return;
} }
no_signal:
/* /*
* If we came from a system call, handle the restart. * If we came from a system call, handle the restart.
*/ */
......
...@@ -320,9 +320,6 @@ static void do_signal(struct pt_regs *regs) ...@@ -320,9 +320,6 @@ static void do_signal(struct pt_regs *regs)
if (!user_mode(regs)) if (!user_mode(regs))
return; return;
if (try_to_freeze())
goto no_signal;
signr = get_signal_to_deliver(&info, &ka, regs, NULL); signr = get_signal_to_deliver(&info, &ka, regs, NULL);
if (signr > 0) { if (signr > 0) {
/* Re-enable any watchpoints before delivering the /* Re-enable any watchpoints before delivering the
...@@ -337,7 +334,6 @@ static void do_signal(struct pt_regs *regs) ...@@ -337,7 +334,6 @@ static void do_signal(struct pt_regs *regs)
return; return;
} }
no_signal:
/* Did we come from a system call? */ /* Did we come from a system call? */
if (regs->syscall_nr >= 0) { if (regs->syscall_nr >= 0) {
/* Restart the system call - no handlers present */ /* Restart the system call - no handlers present */
......
...@@ -396,16 +396,12 @@ static void do_signal(struct pt_regs *regs, int syscall) ...@@ -396,16 +396,12 @@ static void do_signal(struct pt_regs *regs, int syscall)
if (!user_mode(regs)) if (!user_mode(regs))
return; return;
if (try_to_freeze())
goto no_signal;
signr = get_signal_to_deliver(&info, &ka, regs, NULL); signr = get_signal_to_deliver(&info, &ka, regs, NULL);
if (signr > 0) { if (signr > 0) {
handle_signal(signr, &ka, &info, regs, syscall); handle_signal(signr, &ka, &info, regs, syscall);
return; return;
} }
no_signal:
/* /*
* No signal to deliver to the process - restart the syscall. * No signal to deliver to the process - restart the syscall.
*/ */
......
...@@ -453,9 +453,6 @@ static void do_signal(struct pt_regs *regs) ...@@ -453,9 +453,6 @@ static void do_signal(struct pt_regs *regs)
int signr; int signr;
struct k_sigaction ka; struct k_sigaction ka;
if (try_to_freeze())
goto no_signal;
task_pt_regs(current)->icountlevel = 0; task_pt_regs(current)->icountlevel = 0;
signr = get_signal_to_deliver(&info, &ka, regs, NULL); signr = get_signal_to_deliver(&info, &ka, regs, NULL);
...@@ -506,7 +503,6 @@ static void do_signal(struct pt_regs *regs) ...@@ -506,7 +503,6 @@ static void do_signal(struct pt_regs *regs)
return; return;
} }
no_signal:
/* Did we come from a system call? */ /* Did we come from a system call? */
if ((signed) regs->syscall >= 0) { if ((signed) regs->syscall >= 0) {
/* Restart the system call - no handlers present */ /* Restart the system call - no handlers present */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment