selftests/mm: va_high_addr_switch return fail when either test failed

When the first test failed, and the hugetlb test passed, the result would
be pass, but we expect a fail.  Fix this issue by returning fail if either
is not KSFT_PASS.

Link: https://lkml.kernel.org/r/20251221040025.3159990-4-chuhu@redhat.com
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
Reviewed-by: Luiz Capitulino <luizcap@redhat.com>
Cc: "David Hildenbrand (Red Hat)" <david@kernel.org>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
master
Chunyu Hu 2025-12-21 12:00:24 +08:00 committed by Andrew Morton
parent 7544d7969d
commit dd0202a0bd
1 changed files with 7 additions and 3 deletions

View File

@ -322,7 +322,7 @@ static int supported_arch(void)
int main(int argc, char **argv)
{
int ret;
int ret, hugetlb_ret = KSFT_PASS;
if (!supported_arch())
return KSFT_SKIP;
@ -331,6 +331,10 @@ int main(int argc, char **argv)
ret = run_test(testcases, sz_testcases);
if (argc == 2 && !strcmp(argv[1], "--run-hugetlb"))
ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
return ret;
hugetlb_ret = run_test(hugetlb_testcases, sz_hugetlb_testcases);
if (ret == KSFT_PASS && hugetlb_ret == KSFT_PASS)
return KSFT_PASS;
else
return KSFT_FAIL;
}