Commit 8ffe7720 authored by Swapnil Sapkal's avatar Swapnil Sapkal Committed by Shuah Khan
Browse files

selftests/cpufreq: Fix cpufreq basic read and update testcases

In cpufreq basic selftests, one of the testcases is to read all cpufreq
sysfs files and print the values. This testcase assumes all the cpufreq
sysfs files have read permissions. However certain cpufreq sysfs files
(eg. stats/reset) are write only files and this testcase errors out
when it is not able to read the file.
Similarily, there is one more testcase which reads the cpufreq sysfs
file data and write it back to same file. This testcase also errors out
for sysfs files without read permission.
Fix these testcases by adding proper read permission checks.

Link: https://lore.kernel.org/r/20250430171433.10866-1-swapnil.sapkal@amd.com


Reported-by: default avatarNarasimhan V <narasimhan.v@amd.com>
Signed-off-by: default avatarSwapnil Sapkal <swapnil.sapkal@amd.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent ab4b0040
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -52,7 +52,14 @@ read_cpufreq_files_in_dir()
	for file in $files; do
		if [ -f $1/$file ]; then
			printf "$file:"
			#file is readable ?
			local rfile=$(ls -l $1/$file | awk '$1 ~ /^.*r.*/ { print $NF; }')

			if [ ! -z $rfile ]; then
				cat $1/$file
			else
				printf "$file is not readable\n"
			fi
		else
			printf "\n"
			read_cpufreq_files_in_dir "$1/$file"
@@ -83,10 +90,10 @@ update_cpufreq_files_in_dir()

	for file in $files; do
		if [ -f $1/$file ]; then
			# file is writable ?
			local wfile=$(ls -l $1/$file | awk '$1 ~ /^.*w.*/ { print $NF; }')
			# file is readable and writable ?
			local rwfile=$(ls -l $1/$file | awk '$1 ~ /^.*rw.*/ { print $NF; }')

			if [ ! -z $wfile ]; then
			if [ ! -z $rwfile ]; then
				# scaling_setspeed is a special file and we
				# should skip updating it
				if [ $file != "scaling_setspeed" ]; then