diff options
Diffstat (limited to 'arch/mips/mm/fault.c')
| -rw-r--r-- | arch/mips/mm/fault.c | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index 1e8d00793784..f8d62cd83b36 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c @@ -44,7 +44,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,  	const int field = sizeof(unsigned long) * 2;  	int si_code;  	vm_fault_t fault; -	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; +	unsigned int flags = FAULT_FLAG_DEFAULT;  	static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10); @@ -142,7 +142,7 @@ good_area:  				goto bad_area;  			}  		} else { -			if (!(vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC))) +			if (unlikely(!vma_is_accessible(vma)))  				goto bad_area;  		}  	} @@ -154,7 +154,7 @@ good_area:  	 */  	fault = handle_mm_fault(vma, address, flags); -	if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current)) +	if (fault_signal_pending(fault, regs))  		return;  	perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); @@ -178,7 +178,6 @@ good_area:  			tsk->min_flt++;  		}  		if (fault & VM_FAULT_RETRY) { -			flags &= ~FAULT_FLAG_ALLOW_RETRY;  			flags |= FAULT_FLAG_TRIED;  			/*  |