diff options
Diffstat (limited to 'arch/mips/kernel/signal32.c')
-rw-r--r-- | arch/mips/kernel/signal32.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index f32a22997c3d..c86a5ddff050 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c | |||
@@ -815,9 +815,6 @@ void do_signal32(struct pt_regs *regs) | |||
815 | if (!user_mode(regs)) | 815 | if (!user_mode(regs)) |
816 | return; | 816 | return; |
817 | 817 | ||
818 | if (try_to_freeze()) | ||
819 | goto no_signal; | ||
820 | |||
821 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) | 818 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) |
822 | oldset = ¤t->saved_sigmask; | 819 | oldset = ¤t->saved_sigmask; |
823 | else | 820 | else |
@@ -836,9 +833,10 @@ void do_signal32(struct pt_regs *regs) | |||
836 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) | 833 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) |
837 | clear_thread_flag(TIF_RESTORE_SIGMASK); | 834 | clear_thread_flag(TIF_RESTORE_SIGMASK); |
838 | } | 835 | } |
836 | |||
837 | return; | ||
839 | } | 838 | } |
840 | 839 | ||
841 | no_signal: | ||
842 | /* | 840 | /* |
843 | * Who's code doesn't conform to the restartable syscall convention | 841 | * Who's code doesn't conform to the restartable syscall convention |
844 | * dies here!!! The li instruction, a single machine instruction, | 842 | * dies here!!! The li instruction, a single machine instruction, |
@@ -856,6 +854,7 @@ no_signal: | |||
856 | regs->regs[7] = regs->regs[26]; | 854 | regs->regs[7] = regs->regs[26]; |
857 | regs->cp0_epc -= 4; | 855 | regs->cp0_epc -= 4; |
858 | } | 856 | } |
857 | regs->regs[0] = 0; /* Don't deal with this again. */ | ||
859 | } | 858 | } |
860 | 859 | ||
861 | /* | 860 | /* |