diff options
Diffstat (limited to 'arch/sh/mm/fault.c')
| -rw-r--r-- | arch/sh/mm/fault.c | 17 | 
1 files changed, 2 insertions, 15 deletions
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index acd2f5e50bfc..06e6b4952924 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c @@ -439,21 +439,9 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,  	}  retry: -	mmap_read_lock(mm); - -	vma = find_vma(mm, address); +	vma = lock_mm_and_find_vma(mm, address, regs);  	if (unlikely(!vma)) { -		bad_area(regs, error_code, address); -		return; -	} -	if (likely(vma->vm_start <= address)) -		goto good_area; -	if (unlikely(!(vma->vm_flags & VM_GROWSDOWN))) { -		bad_area(regs, error_code, address); -		return; -	} -	if (unlikely(expand_stack(vma, address))) { -		bad_area(regs, error_code, address); +		bad_area_nosemaphore(regs, error_code, address);  		return;  	} @@ -461,7 +449,6 @@ retry:  	 * Ok, we have a good vm_area for this memory access, so  	 * we can handle it..  	 */ -good_area:  	if (unlikely(access_error(error_code, vma))) {  		bad_area_access_error(regs, error_code, address);  		return;  |