Skip to content

Commit

Permalink
mm/debug_vm_pgtable: populate a pte entry before fetching it
Browse files Browse the repository at this point in the history
pte_clear_tests operate on an existing pte entry. Make sure that is not a none
pte entry.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
  • Loading branch information
kvaneesh authored and intel-lab-lkp committed Aug 27, 2020
1 parent 5bf7b13 commit 9370726
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions mm/debug_vm_pgtable.c
Expand Up @@ -546,7 +546,7 @@ static void __init pgd_populate_tests(struct mm_struct *mm, pgd_t *pgdp,
static void __init pte_clear_tests(struct mm_struct *mm, pte_t *ptep,
unsigned long vaddr)
{
pte_t pte = ptep_get(ptep);
pte_t pte = ptep_get_and_clear(mm, vaddr, ptep);

pr_debug("Validating PTE clear\n");
pte = __pte(pte_val(pte) | RANDOM_ORVALUE);
Expand Down Expand Up @@ -944,7 +944,7 @@ static int __init debug_vm_pgtable(void)
p4d_t *p4dp, *saved_p4dp;
pud_t *pudp, *saved_pudp;
pmd_t *pmdp, *saved_pmdp, pmd;
pte_t *ptep;
pte_t *ptep, pte;
pgtable_t saved_ptep;
pgprot_t prot, protnone;
phys_addr_t paddr;
Expand Down Expand Up @@ -1049,6 +1049,8 @@ static int __init debug_vm_pgtable(void)
*/

ptep = pte_alloc_map_lock(mm, pmdp, vaddr, &ptl);
pte = pfn_pte(pte_aligned, prot);
set_pte_at(mm, vaddr, ptep, pte);
pte_clear_tests(mm, ptep, vaddr);
pte_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
pte_unmap_unlock(ptep, ptl);
Expand Down

0 comments on commit 9370726

Please sign in to comment.