OSDN Git Service

test_firmware: fix setting old custom fw path back on exit, second try
authorBen Hutchings <ben.hutchings@codethink.co.uk>
Wed, 4 Apr 2018 20:38:49 +0000 (22:38 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 May 2018 08:06:49 +0000 (10:06 +0200)
commit e538409257d0217a9bc715686100a5328db75a15 upstream.

Commit 65c79230576 tried to clear the custom firmware path on exit by
writing a single space to the firmware_class.path parameter.  This
doesn't work because nothing strips this space from the value stored
and fw_get_filesystem_firmware() only ignores zero-length paths.

Instead, write a null byte.

Fixes: 0a8adf58475 ("test: add firmware_class loader test")
Fixes: 65c79230576 ("test_firmware: fix setting old custom fw path back on exit")
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Acked-by: Luis R. Rodriguez <mcgrof@kernel.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/testing/selftests/firmware/fw_filesystem.sh

index 61f9b1d..63c310c 100755 (executable)
@@ -29,9 +29,11 @@ test_finish()
                echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
        fi
        if [ "$OLD_FWPATH" = "" ]; then
-               OLD_FWPATH=" "
+               # A zero-length write won't work; write a null byte
+               printf '\000' >/sys/module/firmware_class/parameters/path
+       else
+               echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
        fi
-       echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
        rm -f "$FW"
        rmdir "$FWPATH"
 }