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
7 changed files with 0 additions and 28 deletions
|
@ -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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
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 */
|
||||||
|
|
Loading…
Add table
Reference in a new issue