diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index bdc2a240c2aa..0b215d1b89a7 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -954,8 +954,12 @@ static int follow_phys(struct vm_area_struct *vma, unsigned long *prot, pte_t *ptep, pte; spinlock_t *ptl; - if (follow_pte(vma, vma->vm_start, &ptep, &ptl)) + mmap_read_lock(vma->vm_mm); + if (follow_pte(vma, vma->vm_start, &ptep, &ptl)) { + mmap_read_unlock(vma->vm_mm); return -EINVAL; + } + mmap_read_unlock(vma->vm_mm); pte = ptep_get(ptep);