diff options
Diffstat (limited to 'mm/mincore.c')
| -rw-r--r-- | mm/mincore.c | 3 | 
1 files changed, 3 insertions, 0 deletions
| diff --git a/mm/mincore.c b/mm/mincore.c index 42d6c9c8da86..10dabefc3acc 100644 --- a/mm/mincore.c +++ b/mm/mincore.c @@ -29,7 +29,9 @@ static int mincore_hugetlb(pte_t *pte, unsigned long hmask, unsigned long addr,  #ifdef CONFIG_HUGETLB_PAGE  	unsigned char present;  	unsigned char *vec = walk->private; +	spinlock_t *ptl; +	ptl = huge_pte_lock(hstate_vma(walk->vma), walk->mm, pte);  	/*  	 * Hugepages under user process are always in RAM and never  	 * swapped out, but theoretically it needs to be checked. @@ -38,6 +40,7 @@ static int mincore_hugetlb(pte_t *pte, unsigned long hmask, unsigned long addr,  	for (; addr != end; vec++, addr += PAGE_SIZE)  		*vec = present;  	walk->private = vec; +	spin_unlock(ptl);  #else  	BUG();  #endif | 
