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 162a31d80ad5..e6db475164ed 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,  	if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) !=  			NOTIFY_STOP) {  		cond_local_irq_enable(regs); +		clear_siginfo(&info);  		do_trap(trapnr, signr, str, regs, error_code,  			fill_trap_info(regs, signr, trapnr, &info));  	} @@ -856,6 +857,7 @@ static void math_error(struct pt_regs *regs, int error_code, int trapnr)  	task->thread.trap_nr	= trapnr;  	task->thread.error_code = error_code; +	clear_siginfo(&info);  	info.si_signo		= SIGFPE;  	info.si_errno		= 0;  	info.si_addr		= (void __user *)uprobe_get_trap_addr(regs); @@ -931,6 +933,7 @@ dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code)  	RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU");  	local_irq_enable(); +	clear_siginfo(&info);  	info.si_signo = SIGILL;  	info.si_errno = 0;  	info.si_code = ILL_BADSTK;  | 
