One issue that exists since the inception of the livepatch selftests is the capability of recovering from a failed test: the tested livepatch modules were kept loaded, interfering with the next tests. The first two commits introduce a simple mechanism that tracks all loaded modules, and if the test is aborted, the trap function will disable/unload the remaining modules. With these changes the test "livepatch interaction with kprobed function without post_handler" fails on 4.12 kernels (lacking the feature to have a kprobe a livepatches to be used alongside), but the loaded modules are unloaded, not affecting the next tests.
The other patches adapt the test_klp_mod_target.c file to use module_param_cb and kernel_param_ops structures to test livepatching of functions in modules. This was done to allow the test to be compiled on 4.12 kernels. Older kernels lacks proc_create_single function, and to adapt the code for older versions would require ifdefs, which are not desirable. I tested these changes using the current upstream kernel and kernel from SLE 12-SP5 (kernel 4.12). The test-kprobe.sh test fails on 4.12 due to the missing capability of livepatch and kprobes to be used together. The result is that now selftests is able to unload the modules loaded, and continue with the next tests. For the livepatch target test, it works the same for 4.12 and current upstream. Please test and review! Signed-off-by: Marcos Paulo de Souza <[email protected]> --- Marcos Paulo de Souza (4): selftests: livepatch: Introduce _remove_mod function selftests: livepatch: Remove leftover modules when a testcase fails selftests: livepatch: Adapt mod_target module to pass on 4.12 kernels selftests: livepatch: Add information about minimum kernel support tools/testing/selftests/livepatch/README | 3 ++ tools/testing/selftests/livepatch/functions.sh | 35 ++++++++++++++++++++-- .../testing/selftests/livepatch/test-livepatch.sh | 23 +++++++------- .../livepatch/test_modules/test_klp_mod_patch.c | 11 ++++--- .../livepatch/test_modules/test_klp_mod_target.c | 22 +++++++------- 5 files changed, 62 insertions(+), 32 deletions(-) --- base-commit: 8f7168335cb2e438668c5d94eea76621c9a10edd change-id: 20260506-livepatch-unload-on-fail-56d30a4e45ca Best regards, -- Marcos Paulo de Souza <[email protected]>

