mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	mips/mm: Convert to using lock_mm_and_find_vma()
Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									e6fe228c4f
								
							
						
					
					
						commit
						4bce37a68f
					
				
					 2 changed files with 3 additions and 10 deletions
				
			
		| 
						 | 
					@ -91,6 +91,7 @@ config MIPS
 | 
				
			||||||
	select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
 | 
						select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
 | 
				
			||||||
	select IRQ_FORCED_THREADING
 | 
						select IRQ_FORCED_THREADING
 | 
				
			||||||
	select ISA if EISA
 | 
						select ISA if EISA
 | 
				
			||||||
 | 
						select LOCK_MM_AND_FIND_VMA
 | 
				
			||||||
	select MODULES_USE_ELF_REL if MODULES
 | 
						select MODULES_USE_ELF_REL if MODULES
 | 
				
			||||||
	select MODULES_USE_ELF_RELA if MODULES && 64BIT
 | 
						select MODULES_USE_ELF_RELA if MODULES && 64BIT
 | 
				
			||||||
	select PERF_USE_VMALLOC
 | 
						select PERF_USE_VMALLOC
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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);
 | 
						perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
 | 
				
			||||||
retry:
 | 
					retry:
 | 
				
			||||||
	mmap_read_lock(mm);
 | 
						vma = lock_mm_and_find_vma(mm, address, regs);
 | 
				
			||||||
	vma = find_vma(mm, address);
 | 
					 | 
				
			||||||
	if (!vma)
 | 
						if (!vma)
 | 
				
			||||||
		goto bad_area;
 | 
							goto bad_area_nosemaphore;
 | 
				
			||||||
	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;
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Ok, we have a good vm_area for this memory access, so
 | 
					 * Ok, we have a good vm_area for this memory access, so
 | 
				
			||||||
 * we can handle it..
 | 
					 * we can handle it..
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
good_area:
 | 
					 | 
				
			||||||
	si_code = SEGV_ACCERR;
 | 
						si_code = SEGV_ACCERR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (write) {
 | 
						if (write) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue