Re: [PATCH] selftests: Make ksft_exit functions return void instead of int

From: Muhammad Usama Anjum
Date: Fri Apr 19 2024 - 12:51:22 EST


On 4/17/24 8:37 PM, Nathan Chancellor wrote:
> Commit f7d5bcd35d42 ("selftests: kselftest: Mark functions that
> unconditionally call exit() as __noreturn") marked functions that call
> exit() as __noreturn but it did not change the return type of these
> functions from 'void' to 'int' like it should have (since a noreturn
> function by definition cannot return an integer because it does not
> return...) because there are many tests that return the result of the
> ksft_exit function, even though it has never been used due to calling
> exit().
>
> Prior to adding __noreturn, the compiler would not know that the functions
> that call exit() will not return, so code like
>
> void ksft_exit_fail(void)
> {
> exit(1);
> }
>
> void ksft_exit_pass(void)
> {
> exit(0);
> }
>
> int main(void)
> {
> int ret;
>
> ret = foo();
> if (ret)
> ksft_exit_fail();
> ksft_exit_pass();
> }
>
> would cause the compiler to complain that main() does not return an
> integer, even though when ksft_exit_pass() is called, exit() will cause
> the program to terminate. So ksft_exit_...() returns int to make the
> compiler happy.
>
> int ksft_exit_fail(void)
> {
> exit(1);
> }
>
> int ksft_exit_pass(void)
> {
> exit(0);
> }
>
> int main(void)
> {
> int ret;
>
> ret = foo();
> if (ret)
> return ksft_exit_fail();
> return ksft_exit_pass();
> }
>
> While this results in no warnings, it is weird semantically and it has
> issues as noted in the aforementioned __noreturn change. Now that
> __noreturn has been added to these functions, it is much cleaner to
> change the functions to 'void' and eliminate the return statements, as
> it has been made clear to the compiler that these functions terminate
> the program. Drop the return before all instances of ksft_exit_...() in
> a mechanical way. Only two manually changes were made to transform
>
> return !ret ? ksft_exit_pass() : ksft_exit_fail();
>
> into the more idiomatic
>
> if (ret)
> ksft_exit_fail();
> ksft_exit_pass();
>
> as well as a few style clean ups now that the code is shorter.
>
> Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Reviewed-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>

> ---
> tools/testing/selftests/clone3/clone3_clear_sighand.c | 2 +-
> tools/testing/selftests/clone3/clone3_set_tid.c | 4 +++-
> tools/testing/selftests/ipc/msgque.c | 11 +++++------
> tools/testing/selftests/kselftest.h | 12 ++++++------
> .../selftests/membarrier/membarrier_test_multi_thread.c | 2 +-
> .../selftests/membarrier/membarrier_test_single_thread.c | 2 +-
> tools/testing/selftests/mm/compaction_test.c | 6 +++---
> tools/testing/selftests/mm/cow.c | 2 +-
> tools/testing/selftests/mm/gup_longterm.c | 2 +-
> tools/testing/selftests/mm/gup_test.c | 4 ++--
> tools/testing/selftests/mm/ksm_functional_tests.c | 2 +-
> tools/testing/selftests/mm/madv_populate.c | 2 +-
> tools/testing/selftests/mm/mkdirty.c | 2 +-
> tools/testing/selftests/mm/pagemap_ioctl.c | 4 ++--
> tools/testing/selftests/mm/soft-dirty.c | 2 +-
> tools/testing/selftests/pidfd/pidfd_fdinfo_test.c | 2 +-
> tools/testing/selftests/pidfd/pidfd_open_test.c | 4 +++-
> tools/testing/selftests/pidfd/pidfd_poll_test.c | 2 +-
> tools/testing/selftests/pidfd/pidfd_test.c | 2 +-
> tools/testing/selftests/resctrl/resctrl_tests.c | 6 +++---
> tools/testing/selftests/sync/sync_test.c | 3 +--
> tools/testing/selftests/timers/adjtick.c | 4 ++--
> tools/testing/selftests/timers/alarmtimer-suspend.c | 4 ++--
> tools/testing/selftests/timers/change_skew.c | 4 ++--
> tools/testing/selftests/timers/freq-step.c | 4 ++--
> tools/testing/selftests/timers/leap-a-day.c | 10 +++++-----
> tools/testing/selftests/timers/leapcrash.c | 4 ++--
> tools/testing/selftests/timers/mqueue-lat.c | 4 ++--
> tools/testing/selftests/timers/posix_timers.c | 12 ++++++------
> tools/testing/selftests/timers/raw_skew.c | 6 +++---
> tools/testing/selftests/timers/set-2038.c | 4 ++--
> tools/testing/selftests/timers/set-tai.c | 4 ++--
> tools/testing/selftests/timers/set-timer-lat.c | 4 ++--
> tools/testing/selftests/timers/set-tz.c | 4 ++--
> tools/testing/selftests/timers/skew_consistency.c | 4 ++--
> tools/testing/selftests/timers/threadtest.c | 2 +-
> tools/testing/selftests/timers/valid-adjtimex.c | 6 +++---
> tools/testing/selftests/x86/lam.c | 2 +-
> 38 files changed, 81 insertions(+), 79 deletions(-)
>
> diff --git a/tools/testing/selftests/clone3/clone3_clear_sighand.c b/tools/testing/selftests/clone3/clone3_clear_sighand.c
> index 54a8b2445be9..ce0426786828 100644
> --- a/tools/testing/selftests/clone3/clone3_clear_sighand.c
> +++ b/tools/testing/selftests/clone3/clone3_clear_sighand.c
> @@ -120,5 +120,5 @@ int main(int argc, char **argv)
>
> test_clone3_clear_sighand();
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/clone3/clone3_set_tid.c b/tools/testing/selftests/clone3/clone3_set_tid.c
> index fbf813a5a06f..bfb0da2b4fdd 100644
> --- a/tools/testing/selftests/clone3/clone3_set_tid.c
> +++ b/tools/testing/selftests/clone3/clone3_set_tid.c
> @@ -412,5 +412,7 @@ int main(int argc, char *argv[])
> out:
> ret = 0;
>
> - return !ret ? ksft_exit_pass() : ksft_exit_fail();
> + if (ret)
> + ksft_exit_fail();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/ipc/msgque.c b/tools/testing/selftests/ipc/msgque.c
> index 656c43c24044..c75ea4094870 100644
> --- a/tools/testing/selftests/ipc/msgque.c
> +++ b/tools/testing/selftests/ipc/msgque.c
> @@ -198,13 +198,12 @@ int main(int argc, char **argv)
> struct msgque_data msgque;
>
> if (getuid() != 0)
> - return ksft_exit_skip(
> - "Please run the test as root - Exiting.\n");
> + ksft_exit_skip("Please run the test as root - Exiting.\n");
>
> msgque.key = ftok(argv[0], 822155650);
> if (msgque.key == -1) {
> printf("Can't make key: %d\n", -errno);
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
>
> msgque.msq_id = msgget(msgque.key, IPC_CREAT | IPC_EXCL | 0666);
> @@ -243,13 +242,13 @@ int main(int argc, char **argv)
> printf("Failed to test queue: %d\n", err);
> goto err_out;
> }
> - return ksft_exit_pass();
> + ksft_exit_pass();
>
> err_destroy:
> if (msgctl(msgque.msq_id, IPC_RMID, NULL)) {
> printf("Failed to destroy queue: %d\n", -errno);
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> err_out:
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
> index 9bb1664bcf95..f4221691a7da 100644
> --- a/tools/testing/selftests/kselftest.h
> +++ b/tools/testing/selftests/kselftest.h
> @@ -327,13 +327,13 @@ void ksft_test_result_code(int exit_code, const char *test_name,
> break; \
> } } while (0)
>
> -static inline __noreturn int ksft_exit_pass(void)
> +static inline __noreturn void ksft_exit_pass(void)
> {
> ksft_print_cnts();
> exit(KSFT_PASS);
> }
>
> -static inline __noreturn int ksft_exit_fail(void)
> +static inline __noreturn void ksft_exit_fail(void)
> {
> ksft_print_cnts();
> exit(KSFT_FAIL);
> @@ -360,7 +360,7 @@ static inline __noreturn int ksft_exit_fail(void)
> ksft_cnt.ksft_xfail + \
> ksft_cnt.ksft_xskip)
>
> -static inline __noreturn __printf(1, 2) int ksft_exit_fail_msg(const char *msg, ...)
> +static inline __noreturn __printf(1, 2) void ksft_exit_fail_msg(const char *msg, ...)
> {
> int saved_errno = errno;
> va_list args;
> @@ -388,19 +388,19 @@ static inline __noreturn void ksft_exit_fail_perror(const char *msg)
> #endif
> }
>
> -static inline __noreturn int ksft_exit_xfail(void)
> +static inline __noreturn void ksft_exit_xfail(void)
> {
> ksft_print_cnts();
> exit(KSFT_XFAIL);
> }
>
> -static inline __noreturn int ksft_exit_xpass(void)
> +static inline __noreturn void ksft_exit_xpass(void)
> {
> ksft_print_cnts();
> exit(KSFT_XPASS);
> }
>
> -static inline __noreturn __printf(1, 2) int ksft_exit_skip(const char *msg, ...)
> +static inline __noreturn __printf(1, 2) void ksft_exit_skip(const char *msg, ...)
> {
> int saved_errno = errno;
> va_list args;
> diff --git a/tools/testing/selftests/membarrier/membarrier_test_multi_thread.c b/tools/testing/selftests/membarrier/membarrier_test_multi_thread.c
> index a9cc17facfb3..4e14dba81234 100644
> --- a/tools/testing/selftests/membarrier/membarrier_test_multi_thread.c
> +++ b/tools/testing/selftests/membarrier/membarrier_test_multi_thread.c
> @@ -69,5 +69,5 @@ int main(int argc, char **argv)
> /* Multi-threaded */
> test_mt_membarrier();
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/membarrier/membarrier_test_single_thread.c b/tools/testing/selftests/membarrier/membarrier_test_single_thread.c
> index 4cdc8b1d124c..fa3f1d6c37a0 100644
> --- a/tools/testing/selftests/membarrier/membarrier_test_single_thread.c
> +++ b/tools/testing/selftests/membarrier/membarrier_test_single_thread.c
> @@ -24,5 +24,5 @@ int main(int argc, char **argv)
>
> test_membarrier_get_registrations(/*cmd=*/0);
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/mm/compaction_test.c b/tools/testing/selftests/mm/compaction_test.c
> index 533999b6c284..4f42eb7d7636 100644
> --- a/tools/testing/selftests/mm/compaction_test.c
> +++ b/tools/testing/selftests/mm/compaction_test.c
> @@ -177,7 +177,7 @@ int main(int argc, char **argv)
> ksft_print_header();
>
> if (prereq() || geteuid())
> - return ksft_exit_skip("Prerequisites unsatisfied\n");
> + ksft_exit_skip("Prerequisites unsatisfied\n");
>
> ksft_set_plan(1);
>
> @@ -225,7 +225,7 @@ int main(int argc, char **argv)
> }
>
> if (check_compaction(mem_free, hugepage_size) == 0)
> - return ksft_exit_pass();
> + ksft_exit_pass();
>
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> diff --git a/tools/testing/selftests/mm/cow.c b/tools/testing/selftests/mm/cow.c
> index 363bf5f801be..fe078d6e1806 100644
> --- a/tools/testing/selftests/mm/cow.c
> +++ b/tools/testing/selftests/mm/cow.c
> @@ -1779,5 +1779,5 @@ int main(int argc, char **argv)
> if (err)
> ksft_exit_fail_msg("%d out of %d tests failed\n",
> err, ksft_test_num());
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/mm/gup_longterm.c b/tools/testing/selftests/mm/gup_longterm.c
> index ad168d35b23b..d7eaca5bbe9b 100644
> --- a/tools/testing/selftests/mm/gup_longterm.c
> +++ b/tools/testing/selftests/mm/gup_longterm.c
> @@ -456,5 +456,5 @@ int main(int argc, char **argv)
> if (err)
> ksft_exit_fail_msg("%d out of %d tests failed\n",
> err, ksft_test_num());
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/mm/gup_test.c b/tools/testing/selftests/mm/gup_test.c
> index 18a49c70d4c6..bd335cf9bc0e 100644
> --- a/tools/testing/selftests/mm/gup_test.c
> +++ b/tools/testing/selftests/mm/gup_test.c
> @@ -228,7 +228,7 @@ int main(int argc, char **argv)
> break;
> }
> ksft_test_result_skip("Please run this test as root\n");
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
>
> p = mmap(NULL, size, PROT_READ | PROT_WRITE, flags, filed, 0);
> @@ -267,5 +267,5 @@ int main(int argc, char **argv)
>
> free(tid);
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/mm/ksm_functional_tests.c b/tools/testing/selftests/mm/ksm_functional_tests.c
> index d615767e396b..508287560c45 100644
> --- a/tools/testing/selftests/mm/ksm_functional_tests.c
> +++ b/tools/testing/selftests/mm/ksm_functional_tests.c
> @@ -646,5 +646,5 @@ int main(int argc, char **argv)
> if (err)
> ksft_exit_fail_msg("%d out of %d tests failed\n",
> err, ksft_test_num());
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/mm/madv_populate.c b/tools/testing/selftests/mm/madv_populate.c
> index 17bcb07f19f3..ef7d911da13e 100644
> --- a/tools/testing/selftests/mm/madv_populate.c
> +++ b/tools/testing/selftests/mm/madv_populate.c
> @@ -307,5 +307,5 @@ int main(int argc, char **argv)
> if (err)
> ksft_exit_fail_msg("%d out of %d tests failed\n",
> err, ksft_test_num());
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/mm/mkdirty.c b/tools/testing/selftests/mm/mkdirty.c
> index 301abb99e027..b8a7efe9204e 100644
> --- a/tools/testing/selftests/mm/mkdirty.c
> +++ b/tools/testing/selftests/mm/mkdirty.c
> @@ -375,5 +375,5 @@ int main(void)
> if (err)
> ksft_exit_fail_msg("%d out of %d tests failed\n",
> err, ksft_test_num());
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/mm/pagemap_ioctl.c b/tools/testing/selftests/mm/pagemap_ioctl.c
> index d59517ed3d48..2d785aca72a5 100644
> --- a/tools/testing/selftests/mm/pagemap_ioctl.c
> +++ b/tools/testing/selftests/mm/pagemap_ioctl.c
> @@ -1484,7 +1484,7 @@ int main(int argc, char *argv[])
> ksft_print_header();
>
> if (init_uffd())
> - return ksft_exit_pass();
> + ksft_exit_pass();
>
> ksft_set_plan(115);
>
> @@ -1660,5 +1660,5 @@ int main(int argc, char *argv[])
> userfaultfd_tests();
>
> close(pagemap_fd);
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/mm/soft-dirty.c b/tools/testing/selftests/mm/soft-dirty.c
> index 7dbfa53d93a0..d9dbf879748b 100644
> --- a/tools/testing/selftests/mm/soft-dirty.c
> +++ b/tools/testing/selftests/mm/soft-dirty.c
> @@ -209,5 +209,5 @@ int main(int argc, char **argv)
>
> close(pagemap_fd);
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c b/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
> index 01cc37bf611c..f062a986e382 100644
> --- a/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
> +++ b/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
> @@ -307,5 +307,5 @@ int main(int argc, char **argv)
> test_pidfd_fdinfo_nspid();
> test_pidfd_dead_fdinfo();
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/pidfd/pidfd_open_test.c b/tools/testing/selftests/pidfd/pidfd_open_test.c
> index 8a59438ccc78..c62564c264b1 100644
> --- a/tools/testing/selftests/pidfd/pidfd_open_test.c
> +++ b/tools/testing/selftests/pidfd/pidfd_open_test.c
> @@ -159,5 +159,7 @@ int main(int argc, char **argv)
> if (pidfd >= 0)
> close(pidfd);
>
> - return !ret ? ksft_exit_pass() : ksft_exit_fail();
> + if (ret)
> + ksft_exit_fail();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/pidfd/pidfd_poll_test.c b/tools/testing/selftests/pidfd/pidfd_poll_test.c
> index 610811275357..55d74a50358f 100644
> --- a/tools/testing/selftests/pidfd/pidfd_poll_test.c
> +++ b/tools/testing/selftests/pidfd/pidfd_poll_test.c
> @@ -112,5 +112,5 @@ int main(int argc, char **argv)
> }
>
> ksft_test_result_pass("pidfd poll test: pass\n");
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/pidfd/pidfd_test.c b/tools/testing/selftests/pidfd/pidfd_test.c
> index c081ae91313a..9faa686f90e4 100644
> --- a/tools/testing/selftests/pidfd/pidfd_test.c
> +++ b/tools/testing/selftests/pidfd/pidfd_test.c
> @@ -572,5 +572,5 @@ int main(int argc, char **argv)
> test_pidfd_send_signal_exited_fail();
> test_pidfd_send_signal_recycled_pid_fail();
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c
> index 348d17cb2a84..ecbb7605a981 100644
> --- a/tools/testing/selftests/resctrl/resctrl_tests.c
> +++ b/tools/testing/selftests/resctrl/resctrl_tests.c
> @@ -247,13 +247,13 @@ int main(int argc, char **argv)
> * 2. We execute perf commands
> */
> if (geteuid() != 0)
> - return ksft_exit_skip("Not running as root. Skipping...\n");
> + ksft_exit_skip("Not running as root. Skipping...\n");
>
> if (!check_resctrlfs_support())
> - return ksft_exit_skip("resctrl FS does not exist. Enable X86_CPU_RESCTRL config option.\n");
> + ksft_exit_skip("resctrl FS does not exist. Enable X86_CPU_RESCTRL config option.\n");
>
> if (umount_resctrlfs())
> - return ksft_exit_skip("resctrl FS unmount failed.\n");
> + ksft_exit_skip("resctrl FS unmount failed.\n");
>
> filter_dmesg();
>
> diff --git a/tools/testing/selftests/sync/sync_test.c b/tools/testing/selftests/sync/sync_test.c
> index 414a617db993..93db5aa246a3 100644
> --- a/tools/testing/selftests/sync/sync_test.c
> +++ b/tools/testing/selftests/sync/sync_test.c
> @@ -109,6 +109,5 @@ int main(void)
> ksft_exit_fail_msg("%d out of %d sync tests failed\n",
> err, ksft_test_num());
>
> - /* need this return to keep gcc happy */
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/adjtick.c b/tools/testing/selftests/timers/adjtick.c
> index 47e05fdc32c5..205b76a4abb4 100644
> --- a/tools/testing/selftests/timers/adjtick.c
> +++ b/tools/testing/selftests/timers/adjtick.c
> @@ -205,7 +205,7 @@ int main(int argc, char **argv)
> adjtimex(&tx1);
>
> if (err)
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/alarmtimer-suspend.c b/tools/testing/selftests/timers/alarmtimer-suspend.c
> index 4332b494103d..ad52e608b88e 100644
> --- a/tools/testing/selftests/timers/alarmtimer-suspend.c
> +++ b/tools/testing/selftests/timers/alarmtimer-suspend.c
> @@ -173,6 +173,6 @@ int main(void)
> timer_delete(tm1);
> }
> if (final_ret)
> - return ksft_exit_fail();
> - return ksft_exit_pass();
> + ksft_exit_fail();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/change_skew.c b/tools/testing/selftests/timers/change_skew.c
> index 992a77f2a74c..4421cd562c24 100644
> --- a/tools/testing/selftests/timers/change_skew.c
> +++ b/tools/testing/selftests/timers/change_skew.c
> @@ -89,8 +89,8 @@ int main(int argc, char **argv)
>
> if (ret) {
> printf("[FAIL]");
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> printf("[OK]");
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/freq-step.c b/tools/testing/selftests/timers/freq-step.c
> index 4b76450d78d1..73b636f89fdc 100644
> --- a/tools/testing/selftests/timers/freq-step.c
> +++ b/tools/testing/selftests/timers/freq-step.c
> @@ -257,7 +257,7 @@ int main(int argc, char **argv)
> set_frequency(0.0);
>
> if (fails)
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/leap-a-day.c b/tools/testing/selftests/timers/leap-a-day.c
> index 23eb398c8140..986abbdb1521 100644
> --- a/tools/testing/selftests/timers/leap-a-day.c
> +++ b/tools/testing/selftests/timers/leap-a-day.c
> @@ -268,7 +268,7 @@ int main(int argc, char **argv)
> if (ret < 0) {
> printf("Error: Problem setting STA_INS/STA_DEL!: %s\n",
> time_state_str(ret));
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
>
> /* Validate STA_INS was set */
> @@ -277,7 +277,7 @@ int main(int argc, char **argv)
> if (tx.status != STA_INS && tx.status != STA_DEL) {
> printf("Error: STA_INS/STA_DEL not set!: %s\n",
> time_state_str(ret));
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
>
> if (tai_time) {
> @@ -295,7 +295,7 @@ int main(int argc, char **argv)
> se.sigev_value.sival_int = 0;
> if (timer_create(CLOCK_REALTIME, &se, &tm1) == -1) {
> printf("Error: timer_create failed\n");
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> its1.it_value.tv_sec = next_leap;
> its1.it_value.tv_nsec = 0;
> @@ -366,7 +366,7 @@ int main(int argc, char **argv)
> if (error_found) {
> printf("Errors observed\n");
> clear_time_state();
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> printf("\n");
> if ((iterations != -1) && !(--iterations))
> @@ -374,5 +374,5 @@ int main(int argc, char **argv)
> }
>
> clear_time_state();
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/leapcrash.c b/tools/testing/selftests/timers/leapcrash.c
> index f70802c5dd0d..8fd065eec904 100644
> --- a/tools/testing/selftests/timers/leapcrash.c
> +++ b/tools/testing/selftests/timers/leapcrash.c
> @@ -87,7 +87,7 @@ int main(void)
> tv.tv_usec = 0;
> if (settimeofday(&tv, NULL)) {
> printf("Error: You're likely not running with proper (ie: root) permissions\n");
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> tx.modes = 0;
> adjtimex(&tx);
> @@ -104,5 +104,5 @@ int main(void)
> fflush(stdout);
> }
> printf("[OK]\n");
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/mqueue-lat.c b/tools/testing/selftests/timers/mqueue-lat.c
> index 7916cf5cc6ff..f3179a605bba 100644
> --- a/tools/testing/selftests/timers/mqueue-lat.c
> +++ b/tools/testing/selftests/timers/mqueue-lat.c
> @@ -107,8 +107,8 @@ int main(int argc, char **argv)
> ret = mqueue_lat_test();
> if (ret < 0) {
> printf("[FAILED]\n");
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> printf("[OK]\n");
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/posix_timers.c b/tools/testing/selftests/timers/posix_timers.c
> index c001dd79179d..07c81c0093c0 100644
> --- a/tools/testing/selftests/timers/posix_timers.c
> +++ b/tools/testing/selftests/timers/posix_timers.c
> @@ -260,16 +260,16 @@ int main(int argc, char **argv)
> ksft_print_msg("based timers if other threads run on the CPU...\n");
>
> if (check_itimer(ITIMER_VIRTUAL) < 0)
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> if (check_itimer(ITIMER_PROF) < 0)
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> if (check_itimer(ITIMER_REAL) < 0)
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> if (check_timer_create(CLOCK_THREAD_CPUTIME_ID) < 0)
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> /*
> * It's unfortunately hard to reliably test a timer expiration
> @@ -281,10 +281,10 @@ int main(int argc, char **argv)
> * find a better solution.
> */
> if (check_timer_create(CLOCK_PROCESS_CPUTIME_ID) < 0)
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> if (check_timer_distribution() < 0)
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> ksft_finished();
> }
> diff --git a/tools/testing/selftests/timers/raw_skew.c b/tools/testing/selftests/timers/raw_skew.c
> index 6eba203f9da7..030143eb09b4 100644
> --- a/tools/testing/selftests/timers/raw_skew.c
> +++ b/tools/testing/selftests/timers/raw_skew.c
> @@ -137,11 +137,11 @@ int main(int argc, char **argv)
> if (tx1.offset || tx2.offset ||
> tx1.freq != tx2.freq || tx1.tick != tx2.tick) {
> printf(" [SKIP]\n");
> - return ksft_exit_skip("The clock was adjusted externally. Shutdown NTPd or other time sync daemons\n");
> + ksft_exit_skip("The clock was adjusted externally. Shutdown NTPd or other time sync daemons\n");
> }
> printf(" [FAILED]\n");
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> printf(" [OK]\n");
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/set-2038.c b/tools/testing/selftests/timers/set-2038.c
> index 688cfd81b531..f7d978721b9e 100644
> --- a/tools/testing/selftests/timers/set-2038.c
> +++ b/tools/testing/selftests/timers/set-2038.c
> @@ -128,6 +128,6 @@ int main(int argc, char *argv[])
> /* restore clock */
> settime(start);
> if (ret)
> - return ksft_exit_fail();
> - return ksft_exit_pass();
> + ksft_exit_fail();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/set-tai.c b/tools/testing/selftests/timers/set-tai.c
> index 8c4179ee2ca2..5b67462efcd6 100644
> --- a/tools/testing/selftests/timers/set-tai.c
> +++ b/tools/testing/selftests/timers/set-tai.c
> @@ -61,9 +61,9 @@ int main(int argc, char **argv)
> ret = get_tai();
> if (ret != i) {
> printf("[FAILED] expected: %i got %i\n", i, ret);
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> }
> printf("[OK]\n");
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/set-timer-lat.c b/tools/testing/selftests/timers/set-timer-lat.c
> index 50da45437daa..7ce240c89b21 100644
> --- a/tools/testing/selftests/timers/set-timer-lat.c
> +++ b/tools/testing/selftests/timers/set-timer-lat.c
> @@ -278,6 +278,6 @@ int main(void)
> ret |= do_timer_oneshot(clock_id, 0);
> }
> if (ret)
> - return ksft_exit_fail();
> - return ksft_exit_pass();
> + ksft_exit_fail();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/set-tz.c b/tools/testing/selftests/timers/set-tz.c
> index 62bd33eb16f0..20daaf1782b7 100644
> --- a/tools/testing/selftests/timers/set-tz.c
> +++ b/tools/testing/selftests/timers/set-tz.c
> @@ -102,9 +102,9 @@ int main(int argc, char **argv)
> printf("[OK]\n");
>
> set_tz(min, dst);
> - return ksft_exit_pass();
> + ksft_exit_pass();
>
> err:
> set_tz(min, dst);
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> diff --git a/tools/testing/selftests/timers/skew_consistency.c b/tools/testing/selftests/timers/skew_consistency.c
> index 63913f75b384..c8e6bffe4e0a 100644
> --- a/tools/testing/selftests/timers/skew_consistency.c
> +++ b/tools/testing/selftests/timers/skew_consistency.c
> @@ -70,8 +70,8 @@ int main(int argc, char **argv)
>
> if (ret) {
> printf("[FAILED]\n");
> - return ksft_exit_fail();
> + ksft_exit_fail();
> }
> printf("[OK]\n");
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/threadtest.c b/tools/testing/selftests/timers/threadtest.c
> index 80aed4bf06fb..76b38e41d9c7 100644
> --- a/tools/testing/selftests/timers/threadtest.c
> +++ b/tools/testing/selftests/timers/threadtest.c
> @@ -189,5 +189,5 @@ int main(int argc, char **argv)
> /* die */
> if (ret)
> ksft_exit_fail();
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/timers/valid-adjtimex.c b/tools/testing/selftests/timers/valid-adjtimex.c
> index d13ebde20322..d500884801d8 100644
> --- a/tools/testing/selftests/timers/valid-adjtimex.c
> +++ b/tools/testing/selftests/timers/valid-adjtimex.c
> @@ -320,10 +320,10 @@ int validate_set_offset(void)
> int main(int argc, char **argv)
> {
> if (validate_freq())
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> if (validate_set_offset())
> - return ksft_exit_fail();
> + ksft_exit_fail();
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
> diff --git a/tools/testing/selftests/x86/lam.c b/tools/testing/selftests/x86/lam.c
> index 215b8150b7cc..820db4864292 100644
> --- a/tools/testing/selftests/x86/lam.c
> +++ b/tools/testing/selftests/x86/lam.c
> @@ -1237,5 +1237,5 @@ int main(int argc, char **argv)
>
> ksft_set_plan(tests_cnt);
>
> - return ksft_exit_pass();
> + ksft_exit_pass();
> }
>
> ---
> base-commit: 00ab560eb0e3f9725521c9fec2e8992e9e7e6c29
> change-id: 20240416-ksft-exit-int-to-void-5aa9db381379
>
> Best regards,

--
BR,
Muhammad Usama Anjum