diff options
Diffstat (limited to 'mm/page_table_check.c')
-rw-r--r-- | mm/page_table_check.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/page_table_check.c b/mm/page_table_check.c index f2baf97d5f38..93ec7690a0d8 100644 --- a/mm/page_table_check.c +++ b/mm/page_table_check.c @@ -196,7 +196,7 @@ void __page_table_check_pte_set(struct mm_struct *mm, unsigned long addr, if (&init_mm == mm) return; - __page_table_check_pte_clear(mm, addr, *ptep); + __page_table_check_pte_clear(mm, addr, ptep_get(ptep)); if (pte_user_accessible_page(pte)) { page_table_check_set(mm, addr, pte_pfn(pte), PAGE_SIZE >> PAGE_SHIFT, @@ -246,8 +246,10 @@ void __page_table_check_pte_clear_range(struct mm_struct *mm, pte_t *ptep = pte_offset_map(&pmd, addr); unsigned long i; + if (WARN_ON(!ptep)) + return; for (i = 0; i < PTRS_PER_PTE; i++) { - __page_table_check_pte_clear(mm, addr, *ptep); + __page_table_check_pte_clear(mm, addr, ptep_get(ptep)); addr += PAGE_SIZE; ptep++; } |