@@ -61,6 +61,8 @@ ALL_TESTS="$ALL_TESTS 0006:10:1"
61
61
ALL_TESTS=" $ALL_TESTS 0007:5:1"
62
62
ALL_TESTS=" $ALL_TESTS 0008:150:1"
63
63
ALL_TESTS=" $ALL_TESTS 0009:150:1"
64
+ ALL_TESTS=" $ALL_TESTS 0010:1:1"
65
+ ALL_TESTS=" $ALL_TESTS 0011:1:1"
64
66
65
67
# Kselftest framework requirement - SKIP code is 4.
66
68
ksft_skip=4
@@ -149,6 +151,7 @@ function load_req_mod()
149
151
150
152
test_finish ()
151
153
{
154
+ echo " $MODPROBE " > /proc/sys/kernel/modprobe
152
155
echo " Test completed"
153
156
}
154
157
@@ -443,6 +446,30 @@ kmod_test_0009()
443
446
config_expect_result ${FUNCNAME[0]} SUCCESS
444
447
}
445
448
449
+ kmod_test_0010 ()
450
+ {
451
+ kmod_defaults_driver
452
+ config_num_threads 1
453
+ echo " /KMOD_TEST_NONEXISTENT" > /proc/sys/kernel/modprobe
454
+ config_trigger ${FUNCNAME[0]}
455
+ config_expect_result ${FUNCNAME[0]} -ENOENT
456
+ echo " $MODPROBE " > /proc/sys/kernel/modprobe
457
+ }
458
+
459
+ kmod_test_0011 ()
460
+ {
461
+ kmod_defaults_driver
462
+ config_num_threads 1
463
+ # This causes the kernel to not even try executing modprobe. The error
464
+ # code is still -ENOENT like when modprobe doesn't exist, so we can't
465
+ # easily test for the exact difference. But this still is a useful test
466
+ # since there was a bug where request_module() returned 0 in this case.
467
+ echo > /proc/sys/kernel/modprobe
468
+ config_trigger ${FUNCNAME[0]}
469
+ config_expect_result ${FUNCNAME[0]} -ENOENT
470
+ echo " $MODPROBE " > /proc/sys/kernel/modprobe
471
+ }
472
+
446
473
list_tests ()
447
474
{
448
475
echo " Test ID list:"
@@ -460,6 +487,8 @@ list_tests()
460
487
echo " 0007 x $( get_test_count 0007) - multithreaded tests with default setup test request_module() and get_fs_type()"
461
488
echo " 0008 x $( get_test_count 0008) - multithreaded - push kmod_concurrent over max_modprobes for request_module()"
462
489
echo " 0009 x $( get_test_count 0009) - multithreaded - push kmod_concurrent over max_modprobes for get_fs_type()"
490
+ echo " 0010 x $( get_test_count 0010) - test nonexistent modprobe path"
491
+ echo " 0011 x $( get_test_count 0011) - test completely disabling module autoloading"
463
492
}
464
493
465
494
usage ()
@@ -616,6 +645,7 @@ test_reqs
616
645
allow_user_defaults
617
646
load_req_mod
618
647
648
+ MODPROBE=$( < /proc/sys/kernel/modprobe)
619
649
trap " test_finish" EXIT
620
650
621
651
parse_args $@
0 commit comments