mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-14 09:25:12 +00:00
don't call try_to_freeze() from do_signal()
get_signal_to_deliver() will handle it itself Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
a610d6e672
commit
bf343dfd87
@ -285,9 +285,6 @@ asmlinkage void do_signal(struct pt_regs *regs)
|
||||
|
||||
current->thread.esp0 = (unsigned long)regs;
|
||||
|
||||
if (try_to_freeze())
|
||||
goto no_signal;
|
||||
|
||||
signr = get_signal_to_deliver(&info, &ka, regs, NULL);
|
||||
if (signr > 0) {
|
||||
/* Whee! Actually deliver the signal. */
|
||||
@ -295,7 +292,6 @@ asmlinkage void do_signal(struct pt_regs *regs)
|
||||
return;
|
||||
}
|
||||
|
||||
no_signal:
|
||||
/* Did we come from a system call? */
|
||||
if (regs->orig_p0 >= 0)
|
||||
/* Restart the system call - no handlers present */
|
||||
|
@ -491,16 +491,12 @@ static void do_signal(void)
|
||||
if (!user_mode(__frame))
|
||||
return;
|
||||
|
||||
if (try_to_freeze())
|
||||
goto no_signal;
|
||||
|
||||
signr = get_signal_to_deliver(&info, &ka, __frame, NULL);
|
||||
if (signr > 0) {
|
||||
handle_signal(signr, &info, &ka);
|
||||
return;
|
||||
}
|
||||
|
||||
no_signal:
|
||||
/* Did we come from a system call? */
|
||||
if (__frame->syscallno != -1) {
|
||||
/* Restart the system call - no handlers present */
|
||||
|
@ -466,9 +466,6 @@ statis void do_signal(struct pt_regs *regs)
|
||||
if ((regs->ccr & 0x10))
|
||||
return;
|
||||
|
||||
if (try_to_freeze())
|
||||
goto no_signal;
|
||||
|
||||
current->thread.esp0 = (unsigned long) regs;
|
||||
|
||||
signr = get_signal_to_deliver(&info, &ka, regs, NULL);
|
||||
@ -477,7 +474,6 @@ statis void do_signal(struct pt_regs *regs)
|
||||
handle_signal(signr, &info, &ka, regs);
|
||||
return;
|
||||
}
|
||||
no_signal:
|
||||
/* Did we come from a system call? */
|
||||
if (regs->orig_er0 >= 0) {
|
||||
/* Restart the system call - no handlers present */
|
||||
|
@ -205,9 +205,6 @@ static void do_signal(struct pt_regs *regs)
|
||||
if (!user_mode(regs))
|
||||
return;
|
||||
|
||||
if (try_to_freeze())
|
||||
goto no_signal;
|
||||
|
||||
signo = get_signal_to_deliver(&info, &sigact, regs, NULL);
|
||||
|
||||
if (signo > 0) {
|
||||
@ -215,7 +212,6 @@ static void do_signal(struct pt_regs *regs)
|
||||
return;
|
||||
}
|
||||
|
||||
no_signal:
|
||||
/*
|
||||
* If we came from a system call, handle the restart.
|
||||
*/
|
||||
|
@ -320,9 +320,6 @@ static void do_signal(struct pt_regs *regs)
|
||||
if (!user_mode(regs))
|
||||
return;
|
||||
|
||||
if (try_to_freeze())
|
||||
goto no_signal;
|
||||
|
||||
signr = get_signal_to_deliver(&info, &ka, regs, NULL);
|
||||
if (signr > 0) {
|
||||
/* Re-enable any watchpoints before delivering the
|
||||
@ -337,7 +334,6 @@ static void do_signal(struct pt_regs *regs)
|
||||
return;
|
||||
}
|
||||
|
||||
no_signal:
|
||||
/* Did we come from a system call? */
|
||||
if (regs->syscall_nr >= 0) {
|
||||
/* Restart the system call - no handlers present */
|
||||
|
@ -396,16 +396,12 @@ static void do_signal(struct pt_regs *regs, int syscall)
|
||||
if (!user_mode(regs))
|
||||
return;
|
||||
|
||||
if (try_to_freeze())
|
||||
goto no_signal;
|
||||
|
||||
signr = get_signal_to_deliver(&info, &ka, regs, NULL);
|
||||
if (signr > 0) {
|
||||
handle_signal(signr, &ka, &info, regs, syscall);
|
||||
return;
|
||||
}
|
||||
|
||||
no_signal:
|
||||
/*
|
||||
* No signal to deliver to the process - restart the syscall.
|
||||
*/
|
||||
|
@ -453,9 +453,6 @@ static void do_signal(struct pt_regs *regs)
|
||||
int signr;
|
||||
struct k_sigaction ka;
|
||||
|
||||
if (try_to_freeze())
|
||||
goto no_signal;
|
||||
|
||||
task_pt_regs(current)->icountlevel = 0;
|
||||
|
||||
signr = get_signal_to_deliver(&info, &ka, regs, NULL);
|
||||
@ -506,7 +503,6 @@ static void do_signal(struct pt_regs *regs)
|
||||
return;
|
||||
}
|
||||
|
||||
no_signal:
|
||||
/* Did we come from a system call? */
|
||||
if ((signed) regs->syscall >= 0) {
|
||||
/* Restart the system call - no handlers present */
|
||||
|
Loading…
x
Reference in New Issue
Block a user