mm: fix race between __split_huge_pmd_locked() and GUP-fast
[linux-block.git] / arch / powerpc / mm / book3s64 / pgtable.c
index 83823db3488b98deac4fda1b324dddbb10ec5947..2975ea0841ba4dbe4bd176b399abce24200d0d77 100644 (file)
@@ -170,6 +170,7 @@ pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
 {
        unsigned long old_pmd;
 
+       VM_WARN_ON_ONCE(!pmd_present(*pmdp));
        old_pmd = pmd_hugepage_update(vma->vm_mm, address, pmdp, _PAGE_PRESENT, _PAGE_INVALID);
        flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
        return __pmd(old_pmd);