]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
kselftest: cpufreq: Get rid of double suspend in rtcwake case
authorNícolas F. R. A. Prado <nfraprado@collabora.com>
Wed, 30 Apr 2025 14:55:49 +0000 (10:55 -0400)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 9 May 2025 18:43:39 +0000 (12:43 -0600)
Commit 0b631ed3ce92 ("kselftest: cpufreq: Add RTC wakeup alarm") added
support for automatic wakeup in the suspend routine of the cpufreq
kselftest by using rtcwake, however it left the manual power state
change in the common path. The end result is that when running the
cpufreq kselftest with '-t suspend_rtc' or '-t hibernate_rtc', the
system will go to sleep and be woken up by the RTC, but then immediately
go to sleep again with no wakeup programmed, so it will sleep forever in
an automated testing setup.

Fix this by moving the manual power state change so that it only happens
when not using rtcwake.

Link: https://lore.kernel.org/r/20250430-ksft-cpufreq-suspend-rtc-double-fix-v1-1-dc17a729c5a7@collabora.com
Fixes: 0b631ed3ce92 ("kselftest: cpufreq: Add RTC wakeup alarm")
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/cpufreq/cpufreq.sh

index 3484fa34e8d80e530ff8326f85fcf25463e1d1ee..9927b654fb8f48db1fa71396dd1c8d7d5cdae27e 100755 (executable)
@@ -251,9 +251,10 @@ do_suspend()
                                        printf "Failed to suspend using RTC wake alarm\n"
                                        return 1
                                fi
+                       else
+                               echo $filename > $SYSFS/power/state
                        fi
 
-                       echo $filename > $SYSFS/power/state
                        printf "Came out of $1\n"
 
                        printf "Do basic tests after finishing $1 to verify cpufreq state\n\n"