selftests: timers: nanosleep: Explicitly handle timer_delete() failure

An upcoming patch will remove the early exit on failure of a single
testcase. If a test fails because a timeout timer could not be deleted,
then that timeout timer might interfere with the following tettcases.

Exit the whole test case with a clear error message in this case.

Other failures are not problematic:
* If timer_settime() fails, a harmless unarmed timer is left around.
* The SIGALRM handler reconfigured for each call to
  nanosleep_test_remaining() anyways.

Signed-off-by: Thomas Weißschuh (Schneider Electric) <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260803-auxclock-nanosleep-prep-v2-12-910cbd485390@linutronix.de
This commit is contained in:
Thomas Weißschuh (Schneider Electric)
2026-08-03 12:04:43 +02:00
committed by Thomas Gleixner
parent 061341a568
commit f2ff28a522

View File

@@ -111,11 +111,14 @@ static int nanosleep_test_remaining(int clockid)
rqtp.tv_nsec = NSEC_PER_SEC / 2;
ret = clock_nanosleep(clockid, 0, &rqtp, &rmtp);
if (ret != EINTR)
return KSFT_FAIL;
ret = timer_delete(timer);
if (ret)
if (timer_delete(timer)) {
ksft_exit_fail_msg("Unable to delete the timeout timer for %s. "
"This might interfere with following testcases.\n",
clock_name(clockid));
}
if (ret != EINTR)
return KSFT_FAIL;
sa.sa_handler = SIG_DFL;