aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/signal32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/signal32.c')
-rw-r--r--arch/mips/kernel/signal32.c7
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 = &current->saved_sigmask; 819 oldset = &current->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
841no_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 /*