--- x/mm/madvise.c +++ y/mm/madvise.c @@ -482,10 +482,7 @@ restart: err = split_folio(folio); folio_unlock(folio); folio_put(folio); - if (err) - continue; - start_pte = pte = - pte_offset_map_lock(mm, pmd, addr, &ptl); + start_pte = pte = pte_offset_map_lock(mm, pmd, addr, &ptl); if (!start_pte) break; arch_enter_lazy_mmu_mode();