diff options
Diffstat (limited to 'arch/ia64/kernel/brl_emu.c')
| -rw-r--r-- | arch/ia64/kernel/brl_emu.c | 31 | 
1 files changed, 6 insertions, 25 deletions
diff --git a/arch/ia64/kernel/brl_emu.c b/arch/ia64/kernel/brl_emu.c index a61f6c6a36f8..c0239bf77a09 100644 --- a/arch/ia64/kernel/brl_emu.c +++ b/arch/ia64/kernel/brl_emu.c @@ -58,11 +58,9 @@ ia64_emulate_brl (struct pt_regs *regs, unsigned long ar_ec)  	unsigned long bundle[2];  	unsigned long opcode, btype, qp, offset, cpl;  	unsigned long next_ip; -	struct siginfo siginfo;  	struct illegal_op_return rv;  	long tmp_taken, unimplemented_address; -	clear_siginfo(&siginfo);  	rv.fkt = (unsigned long) -1;  	/* @@ -198,39 +196,22 @@ ia64_emulate_brl (struct pt_regs *regs, unsigned long ar_ec)  		 *  The target address contains unimplemented bits.  		 */  		printk(KERN_DEBUG "Woah! Unimplemented Instruction Address Trap!\n"); -		siginfo.si_signo = SIGILL; -		siginfo.si_errno = 0; -		siginfo.si_flags = 0; -		siginfo.si_isr = 0; -		siginfo.si_imm = 0; -		siginfo.si_code = ILL_BADIADDR; -		force_sig_info(SIGILL, &siginfo, current); +		force_sig_fault(SIGILL, ILL_BADIADDR, (void __user *)NULL, +				0, 0, 0, current);  	} else if (ia64_psr(regs)->tb) {  		/*  		 *  Branch Tracing is enabled.  		 *  Force a taken branch signal.  		 */ -		siginfo.si_signo = SIGTRAP; -		siginfo.si_errno = 0; -		siginfo.si_code = TRAP_BRANCH; -		siginfo.si_flags = 0; -		siginfo.si_isr = 0; -		siginfo.si_addr = 0; -		siginfo.si_imm = 0; -		force_sig_info(SIGTRAP, &siginfo, current); +		force_sig_fault(SIGTRAP, TRAP_BRANCH, (void __user *)NULL, +				0, 0, 0, current);  	} else if (ia64_psr(regs)->ss) {  		/*  		 *  Single Step is enabled.  		 *  Force a trace signal.  		 */ -		siginfo.si_signo = SIGTRAP; -		siginfo.si_errno = 0; -		siginfo.si_code = TRAP_TRACE; -		siginfo.si_flags = 0; -		siginfo.si_isr = 0; -		siginfo.si_addr = 0; -		siginfo.si_imm = 0; -		force_sig_info(SIGTRAP, &siginfo, current); +		force_sig_fault(SIGTRAP, TRAP_TRACE, (void __user *)NULL, +				0, 0, 0, current);  	}  	return rv;  }  |