The cleanup loop of allocated memory currently uses: for (entry = list; entry != NULL; entry = entry->next) { munmap(entry->map, MAP_SIZE); if (!entry->next) break; entry = entry->next; } The inner entry = entry->next causes the loop to skip every other node, resulting in only half of the mapped regions being unmapped. Remove the redundant increment to ensure every entry is visited and unmapped during cleanup. Fixes: bd67d5c15cc1 ("Test compaction of mlocked memory") Reviewed-by: Zi Yan Acked-by: David Hildenbrand (Arm) Tested-by: Venkat Rao Bagalkote Signed-off-by: Sayali Patil --- tools/testing/selftests/mm/compaction_test.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/testing/selftests/mm/compaction_test.c b/tools/testing/selftests/mm/compaction_test.c index 30209c40b697..f73930706bd0 100644 --- a/tools/testing/selftests/mm/compaction_test.c +++ b/tools/testing/selftests/mm/compaction_test.c @@ -263,9 +263,6 @@ int main(int argc, char **argv) for (entry = list; entry != NULL; entry = entry->next) { munmap(entry->map, MAP_SIZE); - if (!entry->next) - break; - entry = entry->next; } if (check_compaction(mem_free, hugepage_size, -- 2.52.0