[LTP] [PATCH v5 0/4] tst_kconfig: automatic module load/unload for CONFIG_*=m
Li Wang
li.wang@linux.dev
Thu Oct 15 09:58:08 CEST 2026
From: "Li Wang (Hieco)" <li.wang@linux.dev>
Tests that depend on a config set to =m currently load the module
themselves, and may fail with misleading errors when it is missing,
e.g. bind() returning EADDRNOTAVAIL for AF_VSOCK without vsock_loopback.
This series makes tst_kconfig record the module for every
config_module_maps[] entry seen as =m, load them once the kernel
config check passes, and unload them at cleanup time.
Changes in v5:
- cve-2025-21756.c: merge drop_privileges into setup and drop cleanup.
- keyctl23.c: remove tst_modprobe() so it can run on Android.
Changes in v4:
- tst_kconfig: fold module_name_for_config() into
kconfig_module_record()
- tst_kconfig: move the choice == 'm' gate into
kconfig_module_record() and pass struct tst_kconfig_var * instead
of the raw config name.
Changes in v3:
- Queue only configs that stay 'm' after kconfig_module_check(),
so a module downgraded to 'n' does not abort an otherwise
runnable test.
- Unload with "modprobe -r" instead of "rmmod" to also remove
dependencies pulled in by modprobe.
- Drop the redundant geteuid() check in the unload path.
- Raise MAX_LOADED_MODULES from 16 to 32.
- cve-2025-21756: drop privileges to nobody after module loading
and regain root in cleanup(), so the reproducer runs from a
non-root context while the framework can still unload modules.
Changes in v2:
- Add tst_module_is_loaded() helper.
- Only load/unload modules that are not already loaded.
- Skip automatic loading when KCONFIG_SKIP_CHECK=1, keeping the
semantics consistent with skipping the config check.
- Document the KCONFIG_SKIP_CHECK=1 behaviour for keyctl29/keyctl30
and the vsock/vsock_loopback mapping.
Li Wang (Hieco) (4):
lib: add module is loaded check
tst_kconfig: load and unload kernel modules for CONFIG_*=m
tst_kconfig: add module mappings for vsock/vsock_loopback
testcases: drop manual tst_modprobe() now handled by tst_kconfig
include/tst_kconfig.h | 28 ++++++++
include/tst_module.h | 1 +
lib/tst_kconfig.c | 77 +++++++++++++++++++++
lib/tst_module.c | 39 +++++++++++
lib/tst_test.c | 11 ++-
testcases/cve/cve-2025-21756.c | 17 +++++
testcases/cve/cve-2026-46331.c | 7 --
testcases/cve/sctphantom.c | 3 -
testcases/kernel/syscalls/keyctl/keyctl23.c | 5 --
testcases/kernel/syscalls/keyctl/keyctl29.c | 3 -
testcases/kernel/syscalls/keyctl/keyctl30.c | 3 -
11 files changed, 171 insertions(+), 23 deletions(-)
--
2.56.0
More information about the ltp
mailing list