diff options
Diffstat (limited to 'arch/alpha/mm/fault.c')
| -rw-r--r-- | arch/alpha/mm/fault.c | 13 | 
1 files changed, 2 insertions, 11 deletions
diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c index cd3c572ee912..de2bd217adad 100644 --- a/arch/alpha/mm/fault.c +++ b/arch/alpha/mm/fault.c @@ -88,7 +88,6 @@ do_page_fault(unsigned long address, unsigned long mmcsr,  	struct mm_struct *mm = current->mm;  	const struct exception_table_entry *fixup;  	int fault, si_code = SEGV_MAPERR; -	siginfo_t info;  	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;  	/* As of EV6, a load into $31/$f31 is a prefetch, and never faults @@ -221,21 +220,13 @@ retry:  	up_read(&mm->mmap_sem);  	/* Send a sigbus, regardless of whether we were in kernel  	   or user mode.  */ -	info.si_signo = SIGBUS; -	info.si_errno = 0; -	info.si_code = BUS_ADRERR; -	info.si_addr = (void __user *) address; -	force_sig_info(SIGBUS, &info, current); +	force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *) address, 0, current);  	if (!user_mode(regs))  		goto no_context;  	return;   do_sigsegv: -	info.si_signo = SIGSEGV; -	info.si_errno = 0; -	info.si_code = si_code; -	info.si_addr = (void __user *) address; -	force_sig_info(SIGSEGV, &info, current); +	force_sig_fault(SIGSEGV, si_code, (void __user *) address, 0, current);  	return;  #ifdef CONFIG_ALPHA_LARGE_VMALLOC  | 
