Commit 4bce37a6 authored by Ben Hutchings's avatar Ben Hutchings Committed by Linus Torvalds
Browse files

mips/mm: Convert to using lock_mm_and_find_vma()

parent e6fe228c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ config MIPS
	select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
	select IRQ_FORCED_THREADING
	select ISA if EISA
	select LOCK_MM_AND_FIND_VMA
	select MODULES_USE_ELF_REL if MODULES
	select MODULES_USE_ELF_RELA if MODULES && 64BIT
	select PERF_USE_VMALLOC
+2 −10
Original line number Diff line number Diff line
@@ -99,21 +99,13 @@ static void __do_page_fault(struct pt_regs *regs, unsigned long write,

	perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
retry:
	mmap_read_lock(mm);
	vma = find_vma(mm, address);
	vma = lock_mm_and_find_vma(mm, address, regs);
	if (!vma)
		goto bad_area;
	if (vma->vm_start <= address)
		goto good_area;
	if (!(vma->vm_flags & VM_GROWSDOWN))
		goto bad_area;
	if (expand_stack(vma, address))
		goto bad_area;
		goto bad_area_nosemaphore;
/*
 * Ok, we have a good vm_area for this memory access, so
 * we can handle it..
 */
good_area:
	si_code = SEGV_ACCERR;

	if (write) {