diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/traps.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index 8eddd628326e..2cd429117a41 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
@@ -168,10 +168,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs, | |||
168 | } | 168 | } |
169 | #endif | 169 | #endif |
170 | 170 | ||
171 | if (info) | 171 | force_sig_info(signr, info ?: SEND_SIG_PRIV, tsk); |
172 | force_sig_info(signr, info, tsk); | ||
173 | else | ||
174 | force_sig(signr, tsk); | ||
175 | } | 172 | } |
176 | 173 | ||
177 | #define DO_ERROR(trapnr, signr, str, name) \ | 174 | #define DO_ERROR(trapnr, signr, str, name) \ |
@@ -305,7 +302,7 @@ do_general_protection(struct pt_regs *regs, long error_code) | |||
305 | pr_cont("\n"); | 302 | pr_cont("\n"); |
306 | } | 303 | } |
307 | 304 | ||
308 | force_sig(SIGSEGV, tsk); | 305 | force_sig_info(SIGSEGV, SEND_SIG_PRIV, tsk); |
309 | exit: | 306 | exit: |
310 | exception_exit(prev_state); | 307 | exception_exit(prev_state); |
311 | } | 308 | } |
@@ -645,7 +642,7 @@ void math_state_restore(void) | |||
645 | */ | 642 | */ |
646 | if (unlikely(restore_fpu_checking(tsk))) { | 643 | if (unlikely(restore_fpu_checking(tsk))) { |
647 | drop_init_fpu(tsk); | 644 | drop_init_fpu(tsk); |
648 | force_sig(SIGSEGV, tsk); | 645 | force_sig_info(SIGSEGV, SEND_SIG_PRIV, tsk); |
649 | return; | 646 | return; |
650 | } | 647 | } |
651 | 648 | ||