On Fri, Jul 24, 2015 at 3:10 PM, Luis R. Rodriguez <[email protected]> wrote: > From: "Luis R. Rodriguez" <[email protected]> > > The CONFIG_FW_LOADER_USER_HELPER is mostly disabled these days, so skip > timeout setting for these kernels. > > Signed-off-by: Luis R. Rodriguez <[email protected]> > --- > tools/testing/selftests/firmware/fw_filesystem.sh | 25 > ++++++++++++++++++----- > tools/testing/selftests/firmware/fw_userhelper.sh | 12 ++++++++++- > 2 files changed, 31 insertions(+), 6 deletions(-) > > diff --git a/tools/testing/selftests/firmware/fw_filesystem.sh > b/tools/testing/selftests/firmware/fw_filesystem.sh > index 3fc6c10c2479..c4366dc74e01 100755 > --- a/tools/testing/selftests/firmware/fw_filesystem.sh > +++ b/tools/testing/selftests/firmware/fw_filesystem.sh > @@ -9,7 +9,15 @@ modprobe test_firmware > > DIR=/sys/devices/virtual/misc/test_firmware > > -OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) > +# CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/ > +# These days no one enables CONFIG_FW_LOADER_USER_HELPER so check for that > +# as an indicator for CONFIG_FW_LOADER_USER_HELPER. > +HAS_FW_LOADER_USER_HELPER=$(if [ -d /sys/class/firmware/ ]; then echo yes; > else echo no; fi) > + > +if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then > + OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) > +fi > + > OLD_FWPATH=$(cat /sys/module/firmware_class/parameters/path) > > FWPATH=$(mktemp -d) > @@ -17,7 +25,9 @@ FW="$FWPATH/test-firmware.bin" > > test_finish() > { > - echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout > + if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then > + echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout > + fi > echo -n "$OLD_PATH" >/sys/module/firmware_class/parameters/path > rm -f "$FW" > rmdir "$FWPATH" > @@ -25,8 +35,11 @@ test_finish() > > trap "test_finish" EXIT > > -# Turn down the timeout so failures don't take so long. > -echo 1 >/sys/class/firmware/timeout > +if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then > + # Turn down the timeout so failures don't take so long. > + echo 1 >/sys/class/firmware/timeout > +fi > + > # Set the kernel search path. > echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path > > @@ -41,7 +54,9 @@ if diff -q "$FW" /dev/test_firmware >/dev/null ; then > echo "$0: firmware was not expected to match" >&2 > exit 1 > else > - echo "$0: timeout works" > + if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then > + echo "$0: timeout works" > + fi > fi > > # This should succeed via kernel load or will fail after 1 second after > diff --git a/tools/testing/selftests/firmware/fw_userhelper.sh > b/tools/testing/selftests/firmware/fw_userhelper.sh > index 6efbade12139..b9983f8e09f6 100755 > --- a/tools/testing/selftests/firmware/fw_userhelper.sh > +++ b/tools/testing/selftests/firmware/fw_userhelper.sh > @@ -9,7 +9,17 @@ modprobe test_firmware > > DIR=/sys/devices/virtual/misc/test_firmware > > -OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) > +# CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/ > +# These days no one enables CONFIG_FW_LOADER_USER_HELPER so check for that > +# as an indicator for CONFIG_FW_LOADER_USER_HELPER. > +HAS_FW_LOADER_USER_HELPER=$(if [ -d /sys/class/firmware/ ]; then echo yes; > else echo no; fi) > + > +if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then > + OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) > +else > + echo "usermode helper disabled so ignoring test" > + exit 0 > +fi > > FWPATH=$(mktemp -d) > FW="$FWPATH/test-firmware.bin" > -- > 2.3.2.209.gd67f9d5.dirty >
This looks fine. We really need a general case for "XFAIL" style output on tests. Until then: Acked-by: Kees Cook <[email protected]> -Kees -- Kees Cook Chrome OS Security -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

