diff options
Diffstat (limited to 'arch/x86/kernel/traps.c')
-rw-r--r-- | arch/x86/kernel/traps.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index 03f3d7695dac..a535dd64de63 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
@@ -299,6 +299,7 @@ static void do_error_trap(struct pt_regs *regs, long error_code, char *str, | |||
299 | if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) != | 299 | if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) != |
300 | NOTIFY_STOP) { | 300 | NOTIFY_STOP) { |
301 | cond_local_irq_enable(regs); | 301 | cond_local_irq_enable(regs); |
302 | clear_siginfo(&info); | ||
302 | do_trap(trapnr, signr, str, regs, error_code, | 303 | do_trap(trapnr, signr, str, regs, error_code, |
303 | fill_trap_info(regs, signr, trapnr, &info)); | 304 | fill_trap_info(regs, signr, trapnr, &info)); |
304 | } | 305 | } |
@@ -854,6 +855,7 @@ static void math_error(struct pt_regs *regs, int error_code, int trapnr) | |||
854 | 855 | ||
855 | task->thread.trap_nr = trapnr; | 856 | task->thread.trap_nr = trapnr; |
856 | task->thread.error_code = error_code; | 857 | task->thread.error_code = error_code; |
858 | clear_siginfo(&info); | ||
857 | info.si_signo = SIGFPE; | 859 | info.si_signo = SIGFPE; |
858 | info.si_errno = 0; | 860 | info.si_errno = 0; |
859 | info.si_addr = (void __user *)uprobe_get_trap_addr(regs); | 861 | info.si_addr = (void __user *)uprobe_get_trap_addr(regs); |
@@ -929,6 +931,7 @@ dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code) | |||
929 | RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU"); | 931 | RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU"); |
930 | local_irq_enable(); | 932 | local_irq_enable(); |
931 | 933 | ||
934 | clear_siginfo(&info); | ||
932 | info.si_signo = SIGILL; | 935 | info.si_signo = SIGILL; |
933 | info.si_errno = 0; | 936 | info.si_errno = 0; |
934 | info.si_code = ILL_BADSTK; | 937 | info.si_code = ILL_BADSTK; |