Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: firmware: skip timeout checks for kernels without user mode helper

The CONFIG_FW_LOADER_USER_HELPER is mostly disabled these days, so skip
timeout setting for these kernels.

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Luis R. Rodriguez and committed by
Greg Kroah-Hartman
1d0fbb34 71cf5aee

+31 -6
+20 -5
tools/testing/selftests/firmware/fw_filesystem.sh
··· 9 9 10 10 DIR=/sys/devices/virtual/misc/test_firmware 11 11 12 - OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) 12 + # CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/ 13 + # These days no one enables CONFIG_FW_LOADER_USER_HELPER so check for that 14 + # as an indicator for CONFIG_FW_LOADER_USER_HELPER. 15 + HAS_FW_LOADER_USER_HELPER=$(if [ -d /sys/class/firmware/ ]; then echo yes; else echo no; fi) 16 + 17 + if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then 18 + OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) 19 + fi 20 + 13 21 OLD_FWPATH=$(cat /sys/module/firmware_class/parameters/path) 14 22 15 23 FWPATH=$(mktemp -d) ··· 25 17 26 18 test_finish() 27 19 { 28 - echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout 20 + if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then 21 + echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout 22 + fi 29 23 echo -n "$OLD_PATH" >/sys/module/firmware_class/parameters/path 30 24 rm -f "$FW" 31 25 rmdir "$FWPATH" ··· 35 25 36 26 trap "test_finish" EXIT 37 27 38 - # Turn down the timeout so failures don't take so long. 39 - echo 1 >/sys/class/firmware/timeout 28 + if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then 29 + # Turn down the timeout so failures don't take so long. 30 + echo 1 >/sys/class/firmware/timeout 31 + fi 32 + 40 33 # Set the kernel search path. 41 34 echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path 42 35 ··· 54 41 echo "$0: firmware was not expected to match" >&2 55 42 exit 1 56 43 else 57 - echo "$0: timeout works" 44 + if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then 45 + echo "$0: timeout works" 46 + fi 58 47 fi 59 48 60 49 # This should succeed via kernel load or will fail after 1 second after
+11 -1
tools/testing/selftests/firmware/fw_userhelper.sh
··· 9 9 10 10 DIR=/sys/devices/virtual/misc/test_firmware 11 11 12 - OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) 12 + # CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/ 13 + # These days no one enables CONFIG_FW_LOADER_USER_HELPER so check for that 14 + # as an indicator for CONFIG_FW_LOADER_USER_HELPER. 15 + HAS_FW_LOADER_USER_HELPER=$(if [ -d /sys/class/firmware/ ]; then echo yes; else echo no; fi) 16 + 17 + if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then 18 + OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) 19 + else 20 + echo "usermode helper disabled so ignoring test" 21 + exit 0 22 + fi 13 23 14 24 FWPATH=$(mktemp -d) 15 25 FW="$FWPATH/test-firmware.bin"