diff options
Diffstat (limited to 'arch/x86/mm/pgtable.c')
| -rw-r--r-- | arch/x86/mm/pgtable.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index d007591b8059..93e54ba91fbf 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c @@ -631,6 +631,8 @@ int pmdp_clear_flush_young(struct vm_area_struct *vma,  pmd_t pmdp_invalidate_ad(struct vm_area_struct *vma, unsigned long address,  			 pmd_t *pmdp)  { +	VM_WARN_ON_ONCE(!pmd_present(*pmdp)); +  	/*  	 * No flush is necessary. Once an invalid PTE is established, the PTE's  	 * access and dirty bits cannot be updated. @@ -731,7 +733,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)  		return 0;  	/* Bail out if we are we on a populated non-leaf entry: */ -	if (pud_present(*pud) && !pud_huge(*pud)) +	if (pud_present(*pud) && !pud_leaf(*pud))  		return 0;  	set_pte((pte_t *)pud, pfn_pte( @@ -760,7 +762,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)  	}  	/* Bail out if we are we on a populated non-leaf entry: */ -	if (pmd_present(*pmd) && !pmd_huge(*pmd)) +	if (pmd_present(*pmd) && !pmd_leaf(*pmd))  		return 0;  	set_pte((pte_t *)pmd, pfn_pte(  |