mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	mbind: add BUG_ON(!vma) in new_vma_page()
new_vma_page() is called only by page migration called from do_mbind(), where pages to be migrated are queued into a pagelist by queue_pages_range(). queue_pages_range() confirms that a queued page belongs to some vma, so !vma case is not supposed to be happen. This patch adds BUG_ON() to catch this unexpected case. Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									9809494578
								
							
						
					
					
						commit
						0bf598d863
					
				
					 1 changed files with 5 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1196,12 +1196,14 @@ static struct page *new_vma_page(struct page *page, unsigned long private, int *
 | 
			
		|||
			break;
 | 
			
		||||
		vma = vma->vm_next;
 | 
			
		||||
	}
 | 
			
		||||
	/*
 | 
			
		||||
	 * queue_pages_range() confirms that @page belongs to some vma,
 | 
			
		||||
	 * so vma shouldn't be NULL.
 | 
			
		||||
	 */
 | 
			
		||||
	BUG_ON(!vma);
 | 
			
		||||
 | 
			
		||||
	if (PageHuge(page))
 | 
			
		||||
		return alloc_huge_page_noerr(vma, address, 1);
 | 
			
		||||
	/*
 | 
			
		||||
	 * if !vma, alloc_page_vma() will use task or system default policy
 | 
			
		||||
	 */
 | 
			
		||||
	return alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, address);
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue