diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2018-06-22 21:20:35 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2018-06-22 21:20:35 +0200 | 
| commit | 7731b8bc94e599c9a79e428f3359ff2c34b7576a (patch) | |
| tree | 879f18ccbe274122f2d4f095b43cbc7f953e0ada /arch/openrisc/mm/fault.c | |
| parent | 48e315618dc4dc8904182cd221e3d395d5d97005 (diff) | |
| parent | 9ffc59d57228d74809700be6f7ecb1db10292f05 (diff) | |
Merge branch 'linus' into x86/urgent
Required to queue a dependent fix.
Diffstat (limited to 'arch/openrisc/mm/fault.c')
| -rw-r--r-- | arch/openrisc/mm/fault.c | 18 | 
1 files changed, 5 insertions, 13 deletions
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c index d0021dfae20a..9f011d16cc46 100644 --- a/arch/openrisc/mm/fault.c +++ b/arch/openrisc/mm/fault.c @@ -52,7 +52,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,  	struct task_struct *tsk;  	struct mm_struct *mm;  	struct vm_area_struct *vma; -	siginfo_t info; +	int si_code;  	int fault;  	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; @@ -97,7 +97,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,  	}  	mm = tsk->mm; -	info.si_code = SEGV_MAPERR; +	si_code = SEGV_MAPERR;  	/*  	 * If we're in an interrupt or have no user @@ -139,7 +139,7 @@ retry:  	 */  good_area: -	info.si_code = SEGV_ACCERR; +	si_code = SEGV_ACCERR;  	/* first do some preliminary protection checks */ @@ -213,11 +213,7 @@ bad_area_nosemaphore:  	/* User mode accesses just cause a SIGSEGV */  	if (user_mode(regs)) { -		info.si_signo = SIGSEGV; -		info.si_errno = 0; -		/* info.si_code has been set above */ -		info.si_addr = (void *)address; -		force_sig_info(SIGSEGV, &info, tsk); +		force_sig_fault(SIGSEGV, si_code, (void __user *)address, tsk);  		return;  	} @@ -282,11 +278,7 @@ do_sigbus:  	 * 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 *)address; -	force_sig_info(SIGBUS, &info, tsk); +	force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address, tsk);  	/* Kernel mode? Handle exceptions or die */  	if (!user_mode(regs))  | 
