Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm/damon/vaddr: fix missing pte_unmap_unlock in damos_va_migrate_pmd_entry()

If the PTE page table lock is acquired by pte_offset_map_lock(), the lock
must be released via pte_unmap_unlock().

However, in damos_va_migrate_pmd_entry(), if damos_va_filter_out() returns
true, it immediately returns without releasing the lock.

This fixes the issue by not stopping page table traversal when
damos_va_filter_out() returns true and ensuring that the lock is released.

Link: https://lkml.kernel.org/r/20251209151034.77221-1-akinobu.mita@gmail.com
Fixes: 09efc56a3b1c ("mm/damon/vaddr: consistently use only pmd_entry for damos_migrate")
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Akinobu Mita and committed by
Andrew Morton
02129e62 612b595e

+1 -1
+1 -1
mm/damon/vaddr.c
··· 743 743 if (!folio) 744 744 continue; 745 745 if (damos_va_filter_out(s, folio, walk->vma, addr, pte, NULL)) 746 - return 0; 746 + continue; 747 747 damos_va_migrate_dests_add(folio, walk->vma, addr, dests, 748 748 migration_lists); 749 749 nr = folio_nr_pages(folio);