Commit e8cfc524 authored by Akhilesh Patil's avatar Akhilesh Patil Committed by Shuah Khan
Browse files

selftests: watchdog: skip ping loop if WDIOF_KEEPALIVEPING not supported

Check if watchdog device supports WDIOF_KEEPALIVEPING option before
entering keep_alive() ping test loop. Fix watchdog-test silently looping
if ioctl based ping is not supported by the device. Exit from test in
such case instead of getting stuck in loop executing failing keep_alive()

watchdog_info:
 identity:              m41t93 rtc Watchdog
 firmware_version:      0
Support/Status: Set timeout (in seconds)
Support/Status: Watchdog triggers a management or other external alarm not a reboot

Watchdog card disabled.
Watchdog timeout set to 5 seconds.
Watchdog ping rate set to 2 seconds.
Watchdog card enabled.
WDIOC_KEEPALIVE not supported by this device

without this change
Watchdog card disabled.
Watchdog timeout set to 5 seconds.
Watchdog ping rate set to 2 seconds.
Watchdog card enabled.
Watchdog Ticking Away!
(Where test stuck here forver silently)

Updated change log at commit time:
Shuah Khan <skhan@linuxfoundation.org>

Link: https://lore.kernel.org/r/20250914152840.GA3047348@bhairav-test.ee.iitb.ac.in


Fixes: d89d08ff ("selftests: watchdog: Fix ioctl SET* error paths to take oneshot exit path")
Signed-off-by: default avatarAkhilesh Patil <akhilesh@ee.iitb.ac.in>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent f83ec76b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -332,6 +332,12 @@ int main(int argc, char *argv[])
	if (oneshot)
		goto end;

	/* Check if WDIOF_KEEPALIVEPING is supported */
	if (!(info.options & WDIOF_KEEPALIVEPING)) {
		printf("WDIOC_KEEPALIVE not supported by this device\n");
		goto end;
	}

	printf("Watchdog Ticking Away!\n");

	/*