selftests/mm/ksm_functional: prevent unmapping undefined address

Replace some goto statements with return statements so that unmap() is not
called on an undefined address.  This change is made so that unmap() can
only be reached after mmap() is called (and the address mentioned is
defined).  Returning MAP_FAILED seems acceptable since client code checks
for this value.

Link: https://lkml.kernel.org/r/20240105202401.28851-1-inwardvessel@gmail.com
Fixes: 42096aa24b ("selftest/mm: ksm_functional_tests: test in mmap_and_merge_range() if anything got merged")
Signed-off-by: JP Kobryn <inwardvessel@gmail.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
JP Kobryn 2024-01-05 12:24:01 -08:00 committed by Andrew Morton
parent 6212eb4d7a
commit 3956570ef7

View File

@ -155,12 +155,12 @@ static char *mmap_and_merge_range(char val, unsigned long size, int prot,
/* Stabilize accounting by disabling KSM completely. */ /* Stabilize accounting by disabling KSM completely. */
if (ksm_unmerge()) { if (ksm_unmerge()) {
ksft_test_result_fail("Disabling (unmerging) KSM failed\n"); ksft_test_result_fail("Disabling (unmerging) KSM failed\n");
goto unmap; return MAP_FAILED;
} }
if (get_my_merging_pages() > 0) { if (get_my_merging_pages() > 0) {
ksft_test_result_fail("Still pages merged\n"); ksft_test_result_fail("Still pages merged\n");
goto unmap; return MAP_FAILED;
} }
map = mmap(NULL, size, PROT_READ|PROT_WRITE, map = mmap(NULL, size, PROT_READ|PROT_WRITE,