diff --git a/mm/madvise.c b/mm/madvise.c index a3b8b7ecc930020363dace7fa037ae8c6094183b..263c2c68b0defe3913e6041eb73e95f1b94f4eb7 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -391,12 +391,12 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr, if (split_huge_page(page)) { unlock_page(page); put_page(page); - pte_offset_map_lock(mm, pmd, addr, &ptl); + orig_pte = pte_offset_map_lock(mm, pmd, addr, &ptl); goto out; } unlock_page(page); put_page(page); - pte = pte_offset_map_lock(mm, pmd, addr, &ptl); + orig_pte = pte = pte_offset_map_lock(mm, pmd, addr, &ptl); pte--; addr -= PAGE_SIZE; continue;