Merge tag 'driver-core-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core updates from Greg KH: "Here is the "big" set of driver core patches for 4.17-rc1. There's really not much here, just a bunch of firmware code refactoring from Luis as he attempts to wrangle that codebase into something that is managable, along with a bunch of userspace tests for it. Other than that, a handful of small bugfixes and reverts of things that didn't work out. Full details are in the shortlog, it's not all that much. All of these have been in linux-next for a while with no reported issues" * tag 'driver-core-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (30 commits) drivers: base: remove check for callback in coredump_store() mt7601u: use firmware_request_cache() to address cache on reboot firmware: add firmware_request_cache() to help with cache on reboot firmware: fix typo on pr_info_once() when ignore_sysfs_fallback is used firmware: explicitly include vmalloc.h firmware: ensure the firmware cache is not used on incompatible calls test_firmware: modify custom fallback tests to use unique files firmware: add helper to check to see if fw cache is setup firmware: fix checking for return values for fw_add_devm_name() rename: _request_firmware_load() fw_load_sysfs_fallback() test_firmware: test three firmware kernel configs using a proc knob test_firmware: expand on library with shared helpers firmware: enable to force disable the fallback mechanism at run time firmware: enable run time change of forcing fallback loader firmware: move firmware loader into its own directory firmware: split firmware fallback functionality into its own file firmware: move loading timeout under struct firmware_fallback_config firmware: use helpers for setting up a temporary cache timeout firmware: simplify CONFIG_FW_LOADER_USER_HELPER_FALLBACK further drivers: base: add description for .coredump() callback ...
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
# No binaries, but make sure arg-less "make" doesn't trigger "run_tests"
|
||||
all:
|
||||
|
||||
TEST_PROGS := fw_filesystem.sh fw_fallback.sh
|
||||
TEST_PROGS := fw_run_tests.sh
|
||||
|
||||
include ../lib.mk
|
||||
|
||||
|
@@ -1 +1,5 @@
|
||||
CONFIG_TEST_FIRMWARE=y
|
||||
CONFIG_FW_LOADER=y
|
||||
CONFIG_FW_LOADER_USER_HELPER=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# This validates that the kernel will fall back to using the fallback mechanism
|
||||
# to load firmware it can't find on disk itself. We must request a firmware
|
||||
@@ -6,31 +6,17 @@
|
||||
# won't find so that we can do the load ourself manually.
|
||||
set -e
|
||||
|
||||
modprobe test_firmware
|
||||
TEST_REQS_FW_SYSFS_FALLBACK="yes"
|
||||
TEST_REQS_FW_SET_CUSTOM_PATH="no"
|
||||
TEST_DIR=$(dirname $0)
|
||||
source $TEST_DIR/fw_lib.sh
|
||||
|
||||
DIR=/sys/devices/virtual/misc/test_firmware
|
||||
check_mods
|
||||
check_setup
|
||||
verify_reqs
|
||||
setup_tmp_file
|
||||
|
||||
# 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"
|
||||
|
||||
test_finish()
|
||||
{
|
||||
echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
|
||||
rm -f "$FW"
|
||||
rmdir "$FWPATH"
|
||||
}
|
||||
trap "test_finish" EXIT
|
||||
|
||||
load_fw()
|
||||
{
|
||||
@@ -169,12 +155,6 @@ load_fw_fallback_with_child()
|
||||
return $RET
|
||||
}
|
||||
|
||||
trap "test_finish" EXIT
|
||||
|
||||
# This is an unlikely real-world firmware content. :)
|
||||
echo "ABCD0123" >"$FW"
|
||||
NAME=$(basename "$FW")
|
||||
|
||||
test_syfs_timeout()
|
||||
{
|
||||
DEVPATH="$DIR"/"nope-$NAME"/loading
|
||||
@@ -258,8 +238,10 @@ run_sysfs_main_tests()
|
||||
|
||||
run_sysfs_custom_load_tests()
|
||||
{
|
||||
if load_fw_custom "$NAME" "$FW" ; then
|
||||
if ! diff -q "$FW" /dev/test_firmware >/dev/null ; then
|
||||
RANDOM_FILE_PATH=$(setup_random_file)
|
||||
RANDOM_FILE="$(basename $RANDOM_FILE_PATH)"
|
||||
if load_fw_custom "$RANDOM_FILE" "$RANDOM_FILE_PATH" ; then
|
||||
if ! diff -q "$RANDOM_FILE_PATH" /dev/test_firmware >/dev/null ; then
|
||||
echo "$0: firmware was not loaded" >&2
|
||||
exit 1
|
||||
else
|
||||
@@ -267,8 +249,10 @@ run_sysfs_custom_load_tests()
|
||||
fi
|
||||
fi
|
||||
|
||||
if load_fw_custom "$NAME" "$FW" ; then
|
||||
if ! diff -q "$FW" /dev/test_firmware >/dev/null ; then
|
||||
RANDOM_FILE_PATH=$(setup_random_file)
|
||||
RANDOM_FILE="$(basename $RANDOM_FILE_PATH)"
|
||||
if load_fw_custom "$RANDOM_FILE" "$RANDOM_FILE_PATH" ; then
|
||||
if ! diff -q "$RANDOM_FILE_PATH" /dev/test_firmware >/dev/null ; then
|
||||
echo "$0: firmware was not loaded" >&2
|
||||
exit 1
|
||||
else
|
||||
@@ -276,8 +260,12 @@ run_sysfs_custom_load_tests()
|
||||
fi
|
||||
fi
|
||||
|
||||
if load_fw_custom_cancel "nope-$NAME" "$FW" ; then
|
||||
if diff -q "$FW" /dev/test_firmware >/dev/null ; then
|
||||
RANDOM_FILE_REAL="$RANDOM_FILE_PATH"
|
||||
FAKE_RANDOM_FILE_PATH=$(setup_random_file_fake)
|
||||
FAKE_RANDOM_FILE="$(basename $FAKE_RANDOM_FILE_PATH)"
|
||||
|
||||
if load_fw_custom_cancel "$FAKE_RANDOM_FILE" "$RANDOM_FILE_REAL" ; then
|
||||
if diff -q "$RANDOM_FILE_PATH" /dev/test_firmware >/dev/null ; then
|
||||
echo "$0: firmware was expected to be cancelled" >&2
|
||||
exit 1
|
||||
else
|
||||
@@ -286,7 +274,10 @@ run_sysfs_custom_load_tests()
|
||||
fi
|
||||
}
|
||||
|
||||
run_sysfs_main_tests
|
||||
if [ "$HAS_FW_LOADER_USER_HELPER_FALLBACK" = "yes" ]; then
|
||||
run_sysfs_main_tests
|
||||
fi
|
||||
|
||||
run_sysfs_custom_load_tests
|
||||
|
||||
exit 0
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# This validates that the kernel will load firmware out of its list of
|
||||
# firmware locations on disk. Since the user helper does similar work,
|
||||
@@ -6,52 +6,15 @@
|
||||
# know so we can be sure we're not accidentally testing the user helper.
|
||||
set -e
|
||||
|
||||
DIR=/sys/devices/virtual/misc/test_firmware
|
||||
TEST_REQS_FW_SYSFS_FALLBACK="no"
|
||||
TEST_REQS_FW_SET_CUSTOM_PATH="yes"
|
||||
TEST_DIR=$(dirname $0)
|
||||
source $TEST_DIR/fw_lib.sh
|
||||
|
||||
test_modprobe()
|
||||
{
|
||||
if [ ! -d $DIR ]; then
|
||||
echo "$0: $DIR not present"
|
||||
echo "You must have the following enabled in your kernel:"
|
||||
cat $TEST_DIR/config
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
trap "test_modprobe" EXIT
|
||||
|
||||
if [ ! -d $DIR ]; then
|
||||
modprobe test_firmware
|
||||
fi
|
||||
|
||||
# CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/
|
||||
# These days most distros enable CONFIG_FW_LOADER_USER_HELPER but disable
|
||||
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK. We use /sys/class/firmware/ 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)
|
||||
FW="$FWPATH/test-firmware.bin"
|
||||
|
||||
test_finish()
|
||||
{
|
||||
if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
|
||||
echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
|
||||
fi
|
||||
if [ "$OLD_FWPATH" = "" ]; then
|
||||
OLD_FWPATH=" "
|
||||
fi
|
||||
echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
|
||||
rm -f "$FW"
|
||||
rmdir "$FWPATH"
|
||||
}
|
||||
check_mods
|
||||
check_setup
|
||||
verify_reqs
|
||||
setup_tmp_file
|
||||
|
||||
trap "test_finish" EXIT
|
||||
|
||||
@@ -60,14 +23,6 @@ if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
|
||||
echo 1 >/sys/class/firmware/timeout
|
||||
fi
|
||||
|
||||
# Set the kernel search path.
|
||||
echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path
|
||||
|
||||
# This is an unlikely real-world firmware content. :)
|
||||
echo "ABCD0123" >"$FW"
|
||||
|
||||
NAME=$(basename "$FW")
|
||||
|
||||
if printf '\000' >"$DIR"/trigger_request 2> /dev/null; then
|
||||
echo "$0: empty filename should not succeed" >&2
|
||||
exit 1
|
||||
@@ -275,10 +230,13 @@ test_wait_and_cancel_custom_load()
|
||||
test_request_firmware_nowait_custom_nofile()
|
||||
{
|
||||
echo -n "Batched request_firmware_nowait(uevent=false) nofile try #$1: "
|
||||
config_reset
|
||||
config_unset_uevent
|
||||
config_set_name nope-test-firmware.bin
|
||||
RANDOM_FILE_PATH=$(setup_random_file_fake)
|
||||
RANDOM_FILE="$(basename $RANDOM_FILE_PATH)"
|
||||
config_set_name $RANDOM_FILE
|
||||
config_trigger_async &
|
||||
test_wait_and_cancel_custom_load nope-test-firmware.bin
|
||||
test_wait_and_cancel_custom_load $RANDOM_FILE
|
||||
wait
|
||||
release_all_firmware
|
||||
echo "OK"
|
||||
@@ -316,7 +274,11 @@ test_request_firmware_nowait_uevent()
|
||||
test_request_firmware_nowait_custom()
|
||||
{
|
||||
echo -n "Batched request_firmware_nowait(uevent=false) try #$1: "
|
||||
config_reset
|
||||
config_unset_uevent
|
||||
RANDOM_FILE_PATH=$(setup_random_file)
|
||||
RANDOM_FILE="$(basename $RANDOM_FILE_PATH)"
|
||||
config_set_name $RANDOM_FILE
|
||||
config_trigger_async
|
||||
release_all_firmware
|
||||
echo "OK"
|
||||
|
194
tools/testing/selftests/firmware/fw_lib.sh
Executable file
194
tools/testing/selftests/firmware/fw_lib.sh
Executable file
@@ -0,0 +1,194 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# Library of helpers for test scripts.
|
||||
set -e
|
||||
|
||||
DIR=/sys/devices/virtual/misc/test_firmware
|
||||
|
||||
PROC_CONFIG="/proc/config.gz"
|
||||
TEST_DIR=$(dirname $0)
|
||||
|
||||
print_reqs_exit()
|
||||
{
|
||||
echo "You must have the following enabled in your kernel:" >&2
|
||||
cat $TEST_DIR/config >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
test_modprobe()
|
||||
{
|
||||
if [ ! -d $DIR ]; then
|
||||
print_reqs_exit
|
||||
fi
|
||||
}
|
||||
|
||||
check_mods()
|
||||
{
|
||||
trap "test_modprobe" EXIT
|
||||
if [ ! -d $DIR ]; then
|
||||
modprobe test_firmware
|
||||
fi
|
||||
if [ ! -f $PROC_CONFIG ]; then
|
||||
if modprobe configs 2>/dev/null; then
|
||||
echo "Loaded configs module"
|
||||
if [ ! -f $PROC_CONFIG ]; then
|
||||
echo "You must have the following enabled in your kernel:" >&2
|
||||
cat $TEST_DIR/config >&2
|
||||
echo "Resorting to old heuristics" >&2
|
||||
fi
|
||||
else
|
||||
echo "Failed to load configs module, using old heuristics" >&2
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
check_setup()
|
||||
{
|
||||
HAS_FW_LOADER_USER_HELPER="$(kconfig_has CONFIG_FW_LOADER_USER_HELPER=y)"
|
||||
HAS_FW_LOADER_USER_HELPER_FALLBACK="$(kconfig_has CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y)"
|
||||
PROC_FW_IGNORE_SYSFS_FALLBACK="0"
|
||||
PROC_FW_FORCE_SYSFS_FALLBACK="0"
|
||||
|
||||
if [ -z $PROC_SYS_DIR ]; then
|
||||
PROC_SYS_DIR="/proc/sys/kernel"
|
||||
fi
|
||||
|
||||
FW_PROC="${PROC_SYS_DIR}/firmware_config"
|
||||
FW_FORCE_SYSFS_FALLBACK="$FW_PROC/force_sysfs_fallback"
|
||||
FW_IGNORE_SYSFS_FALLBACK="$FW_PROC/ignore_sysfs_fallback"
|
||||
|
||||
if [ -f $FW_FORCE_SYSFS_FALLBACK ]; then
|
||||
PROC_FW_FORCE_SYSFS_FALLBACK="$(cat $FW_FORCE_SYSFS_FALLBACK)"
|
||||
fi
|
||||
|
||||
if [ -f $FW_IGNORE_SYSFS_FALLBACK ]; then
|
||||
PROC_FW_IGNORE_SYSFS_FALLBACK="$(cat $FW_IGNORE_SYSFS_FALLBACK)"
|
||||
fi
|
||||
|
||||
if [ "$PROC_FW_FORCE_SYSFS_FALLBACK" = "1" ]; then
|
||||
HAS_FW_LOADER_USER_HELPER="yes"
|
||||
HAS_FW_LOADER_USER_HELPER_FALLBACK="yes"
|
||||
fi
|
||||
|
||||
if [ "$PROC_FW_IGNORE_SYSFS_FALLBACK" = "1" ]; then
|
||||
HAS_FW_LOADER_USER_HELPER_FALLBACK="no"
|
||||
HAS_FW_LOADER_USER_HELPER="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)"
|
||||
}
|
||||
|
||||
verify_reqs()
|
||||
{
|
||||
if [ "$TEST_REQS_FW_SYSFS_FALLBACK" = "yes" ]; then
|
||||
if [ ! "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
|
||||
echo "usermode helper disabled so ignoring test"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
setup_tmp_file()
|
||||
{
|
||||
FWPATH=$(mktemp -d)
|
||||
FW="$FWPATH/test-firmware.bin"
|
||||
echo "ABCD0123" >"$FW"
|
||||
NAME=$(basename "$FW")
|
||||
if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then
|
||||
echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path
|
||||
fi
|
||||
}
|
||||
|
||||
__setup_random_file()
|
||||
{
|
||||
RANDOM_FILE_PATH="$(mktemp -p $FWPATH)"
|
||||
# mktemp says dry-run -n is unsafe, so...
|
||||
if [[ "$1" = "fake" ]]; then
|
||||
rm -rf $RANDOM_FILE_PATH
|
||||
sync
|
||||
else
|
||||
echo "ABCD0123" >"$RANDOM_FILE_PATH"
|
||||
fi
|
||||
echo $RANDOM_FILE_PATH
|
||||
}
|
||||
|
||||
setup_random_file()
|
||||
{
|
||||
echo $(__setup_random_file)
|
||||
}
|
||||
|
||||
setup_random_file_fake()
|
||||
{
|
||||
echo $(__setup_random_file fake)
|
||||
}
|
||||
|
||||
proc_set_force_sysfs_fallback()
|
||||
{
|
||||
if [ -f $FW_FORCE_SYSFS_FALLBACK ]; then
|
||||
echo -n $1 > $FW_FORCE_SYSFS_FALLBACK
|
||||
check_setup
|
||||
fi
|
||||
}
|
||||
|
||||
proc_set_ignore_sysfs_fallback()
|
||||
{
|
||||
if [ -f $FW_IGNORE_SYSFS_FALLBACK ]; then
|
||||
echo -n $1 > $FW_IGNORE_SYSFS_FALLBACK
|
||||
check_setup
|
||||
fi
|
||||
}
|
||||
|
||||
proc_restore_defaults()
|
||||
{
|
||||
proc_set_force_sysfs_fallback 0
|
||||
proc_set_ignore_sysfs_fallback 0
|
||||
}
|
||||
|
||||
test_finish()
|
||||
{
|
||||
if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
|
||||
echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
|
||||
fi
|
||||
if [ "$OLD_FWPATH" = "" ]; then
|
||||
OLD_FWPATH=" "
|
||||
fi
|
||||
if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then
|
||||
echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
|
||||
fi
|
||||
if [ -f $FW ]; then
|
||||
rm -f "$FW"
|
||||
fi
|
||||
if [ -d $FWPATH ]; then
|
||||
rm -rf "$FWPATH"
|
||||
fi
|
||||
proc_restore_defaults
|
||||
}
|
||||
|
||||
kconfig_has()
|
||||
{
|
||||
if [ -f $PROC_CONFIG ]; then
|
||||
if zgrep -q $1 $PROC_CONFIG 2>/dev/null; then
|
||||
echo "yes"
|
||||
else
|
||||
echo "no"
|
||||
fi
|
||||
else
|
||||
# We currently don't have easy heuristics to infer this
|
||||
# so best we can do is just try to use the kernel assuming
|
||||
# you had enabled it. This matches the old behaviour.
|
||||
if [ "$1" = "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y" ]; then
|
||||
echo "yes"
|
||||
elif [ "$1" = "CONFIG_FW_LOADER_USER_HELPER=y" ]; then
|
||||
if [ -d /sys/class/firmware/ ]; then
|
||||
echo yes
|
||||
else
|
||||
echo no
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
70
tools/testing/selftests/firmware/fw_run_tests.sh
Executable file
70
tools/testing/selftests/firmware/fw_run_tests.sh
Executable file
@@ -0,0 +1,70 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# This runs all known tests across all known possible configurations we could
|
||||
# emulate in one run.
|
||||
|
||||
set -e
|
||||
|
||||
TEST_DIR=$(dirname $0)
|
||||
source $TEST_DIR/fw_lib.sh
|
||||
|
||||
export HAS_FW_LOADER_USER_HELPER=""
|
||||
export HAS_FW_LOADER_USER_HELPER_FALLBACK=""
|
||||
|
||||
run_tests()
|
||||
{
|
||||
proc_set_force_sysfs_fallback $1
|
||||
proc_set_ignore_sysfs_fallback $2
|
||||
$TEST_DIR/fw_filesystem.sh
|
||||
|
||||
proc_set_force_sysfs_fallback $1
|
||||
proc_set_ignore_sysfs_fallback $2
|
||||
$TEST_DIR/fw_fallback.sh
|
||||
}
|
||||
|
||||
run_test_config_0001()
|
||||
{
|
||||
echo "-----------------------------------------------------"
|
||||
echo "Running kernel configuration test 1 -- rare"
|
||||
echo "Emulates:"
|
||||
echo "CONFIG_FW_LOADER=y"
|
||||
echo "CONFIG_FW_LOADER_USER_HELPER=n"
|
||||
echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=n"
|
||||
run_tests 0 1
|
||||
}
|
||||
|
||||
run_test_config_0002()
|
||||
{
|
||||
echo "-----------------------------------------------------"
|
||||
echo "Running kernel configuration test 2 -- distro"
|
||||
echo "Emulates:"
|
||||
echo "CONFIG_FW_LOADER=y"
|
||||
echo "CONFIG_FW_LOADER_USER_HELPER=y"
|
||||
echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=n"
|
||||
proc_set_ignore_sysfs_fallback 0
|
||||
run_tests 0 0
|
||||
}
|
||||
|
||||
run_test_config_0003()
|
||||
{
|
||||
echo "-----------------------------------------------------"
|
||||
echo "Running kernel configuration test 3 -- android"
|
||||
echo "Emulates:"
|
||||
echo "CONFIG_FW_LOADER=y"
|
||||
echo "CONFIG_FW_LOADER_USER_HELPER=y"
|
||||
echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y"
|
||||
run_tests 1 0
|
||||
}
|
||||
|
||||
check_mods
|
||||
check_setup
|
||||
|
||||
if [ -f $FW_FORCE_SYSFS_FALLBACK ]; then
|
||||
run_test_config_0001
|
||||
run_test_config_0002
|
||||
run_test_config_0003
|
||||
else
|
||||
echo "Running basic kernel configuration, working with your config"
|
||||
run_test
|
||||
fi
|
Reference in New Issue
Block a user