diff options
Diffstat (limited to 'arch/parisc/kernel/unaligned.c')
| -rw-r--r-- | arch/parisc/kernel/unaligned.c | 15 | 
1 files changed, 4 insertions, 11 deletions
diff --git a/arch/parisc/kernel/unaligned.c b/arch/parisc/kernel/unaligned.c index e36f7b75ab07..932bfc0b7cd8 100644 --- a/arch/parisc/kernel/unaligned.c +++ b/arch/parisc/kernel/unaligned.c @@ -452,7 +452,6 @@ void handle_unaligned(struct pt_regs *regs)  	unsigned long newbase = R1(regs->iir)?regs->gr[R1(regs->iir)]:0;  	int modify = 0;  	int ret = ERR_NOTHANDLED; -	struct siginfo si;  	register int flop=0;	/* true if this is a flop */  	__inc_irq_stat(irq_unaligned_count); @@ -690,21 +689,15 @@ void handle_unaligned(struct pt_regs *regs)  		if (ret == ERR_PAGEFAULT)  		{ -			si.si_signo = SIGSEGV; -			si.si_errno = 0; -			si.si_code = SEGV_MAPERR; -			si.si_addr = (void __user *)regs->ior; -			force_sig_info(SIGSEGV, &si, current); +			force_sig_fault(SIGSEGV, SEGV_MAPERR, +					(void __user *)regs->ior, current);  		}  		else  		{  force_sigbus:  			/* couldn't handle it ... */ -			si.si_signo = SIGBUS; -			si.si_errno = 0; -			si.si_code = BUS_ADRALN; -			si.si_addr = (void __user *)regs->ior; -			force_sig_info(SIGBUS, &si, current); +			force_sig_fault(SIGBUS, BUS_ADRALN, +					(void __user *)regs->ior, current);  		}  		return;  | 
