mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 18:21:24 +02:00
selftests: livepatch: Check if replace sysfs attribute exists
The commit adb68ed26a ("livepatch: Add "replace" sysfs attribute"),
merged in v6.11, introduced a new sysfs attribute.
In order to run the selftests on older kernels, check if given kernel
has support for the attribute. If the attribute is not supported, skip
the checks.
While at it, create a local variable to hold the module name to be
tested, instead of overwriting MOD_LIVEPATCH.
Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Acked-by: Joe Lawrence <joe.lawrence@redhat.com>
Link: https://patch.msgid.link/20260504-lp-tests-old-fixes-v5-5-0be26d94ab9a@suse.com
Signed-off-by: Petr Mladek <pmladek@suse.com>
This commit is contained in:
parent
e6b71aefae
commit
1f4cbeec25
|
|
@ -9,6 +9,7 @@ MOD_LIVEPATCH2=test_klp_callbacks_demo
|
|||
MOD_LIVEPATCH3=test_klp_syscall
|
||||
|
||||
HAS_PATCH_ATTR=0
|
||||
HAS_REPLACE_ATTR=0
|
||||
|
||||
setup_config
|
||||
|
||||
|
|
@ -22,7 +23,6 @@ check_sysfs_rights "$MOD_LIVEPATCH" "" "drwxr-xr-x"
|
|||
check_sysfs_rights "$MOD_LIVEPATCH" "enabled" "-rw-r--r--"
|
||||
check_sysfs_value "$MOD_LIVEPATCH" "enabled" "1"
|
||||
check_sysfs_rights "$MOD_LIVEPATCH" "force" "--w-------"
|
||||
check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--"
|
||||
check_sysfs_rights "$MOD_LIVEPATCH" "stack_order" "-r--r--r--"
|
||||
check_sysfs_value "$MOD_LIVEPATCH" "stack_order" "1"
|
||||
check_sysfs_rights "$MOD_LIVEPATCH" "transition" "-r--r--r--"
|
||||
|
|
@ -34,6 +34,11 @@ if does_sysfs_exist "$MOD_LIVEPATCH/vmlinux" "patched"; then
|
|||
HAS_PATCH_ATTR=1
|
||||
fi
|
||||
|
||||
if does_sysfs_exist "$MOD_LIVEPATCH" "replace"; then
|
||||
check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--"
|
||||
HAS_REPLACE_ATTR=1
|
||||
fi
|
||||
|
||||
disable_lp $MOD_LIVEPATCH
|
||||
|
||||
unload_lp $MOD_LIVEPATCH
|
||||
|
|
@ -95,52 +100,54 @@ livepatch: '$MOD_LIVEPATCH2': unpatching complete
|
|||
% rmmod $MOD_LIVEPATCH2"
|
||||
fi
|
||||
|
||||
start_test "sysfs test replace enabled"
|
||||
if [[ "$HAS_REPLACE_ATTR" == "1" ]]; then
|
||||
start_test "sysfs test replace enabled"
|
||||
|
||||
MOD_LIVEPATCH=test_klp_atomic_replace
|
||||
load_lp $MOD_LIVEPATCH replace=1
|
||||
MOD_ATOMIC_REPLACE=test_klp_atomic_replace
|
||||
load_lp $MOD_ATOMIC_REPLACE replace=1
|
||||
|
||||
check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--"
|
||||
check_sysfs_value "$MOD_LIVEPATCH" "replace" "1"
|
||||
check_sysfs_rights "$MOD_ATOMIC_REPLACE" "replace" "-r--r--r--"
|
||||
check_sysfs_value "$MOD_ATOMIC_REPLACE" "replace" "1"
|
||||
|
||||
disable_lp $MOD_LIVEPATCH
|
||||
unload_lp $MOD_LIVEPATCH
|
||||
disable_lp $MOD_ATOMIC_REPLACE
|
||||
unload_lp $MOD_ATOMIC_REPLACE
|
||||
|
||||
check_result "% insmod test_modules/$MOD_LIVEPATCH.ko replace=1
|
||||
livepatch: enabling patch '$MOD_LIVEPATCH'
|
||||
livepatch: '$MOD_LIVEPATCH': initializing patching transition
|
||||
livepatch: '$MOD_LIVEPATCH': starting patching transition
|
||||
livepatch: '$MOD_LIVEPATCH': completing patching transition
|
||||
livepatch: '$MOD_LIVEPATCH': patching complete
|
||||
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
|
||||
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
|
||||
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
|
||||
livepatch: '$MOD_LIVEPATCH': completing unpatching transition
|
||||
livepatch: '$MOD_LIVEPATCH': unpatching complete
|
||||
% rmmod $MOD_LIVEPATCH"
|
||||
check_result "% insmod test_modules/$MOD_ATOMIC_REPLACE.ko replace=1
|
||||
livepatch: enabling patch '$MOD_ATOMIC_REPLACE'
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': initializing patching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': starting patching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': completing patching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': patching complete
|
||||
% echo 0 > $SYSFS_KLP_DIR/$MOD_ATOMIC_REPLACE/enabled
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': initializing unpatching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': starting unpatching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': completing unpatching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': unpatching complete
|
||||
% rmmod $MOD_ATOMIC_REPLACE"
|
||||
|
||||
start_test "sysfs test replace disabled"
|
||||
start_test "sysfs test replace disabled"
|
||||
|
||||
load_lp $MOD_LIVEPATCH replace=0
|
||||
load_lp $MOD_ATOMIC_REPLACE replace=0
|
||||
|
||||
check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--"
|
||||
check_sysfs_value "$MOD_LIVEPATCH" "replace" "0"
|
||||
check_sysfs_rights "$MOD_ATOMIC_REPLACE" "replace" "-r--r--r--"
|
||||
check_sysfs_value "$MOD_ATOMIC_REPLACE" "replace" "0"
|
||||
|
||||
disable_lp $MOD_LIVEPATCH
|
||||
unload_lp $MOD_LIVEPATCH
|
||||
disable_lp $MOD_ATOMIC_REPLACE
|
||||
unload_lp $MOD_ATOMIC_REPLACE
|
||||
|
||||
check_result "% insmod test_modules/$MOD_LIVEPATCH.ko replace=0
|
||||
livepatch: enabling patch '$MOD_LIVEPATCH'
|
||||
livepatch: '$MOD_LIVEPATCH': initializing patching transition
|
||||
livepatch: '$MOD_LIVEPATCH': starting patching transition
|
||||
livepatch: '$MOD_LIVEPATCH': completing patching transition
|
||||
livepatch: '$MOD_LIVEPATCH': patching complete
|
||||
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
|
||||
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
|
||||
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
|
||||
livepatch: '$MOD_LIVEPATCH': completing unpatching transition
|
||||
livepatch: '$MOD_LIVEPATCH': unpatching complete
|
||||
% rmmod $MOD_LIVEPATCH"
|
||||
check_result "% insmod test_modules/$MOD_ATOMIC_REPLACE.ko replace=0
|
||||
livepatch: enabling patch '$MOD_ATOMIC_REPLACE'
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': initializing patching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': starting patching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': completing patching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': patching complete
|
||||
% echo 0 > $SYSFS_KLP_DIR/$MOD_ATOMIC_REPLACE/enabled
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': initializing unpatching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': starting unpatching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': completing unpatching transition
|
||||
livepatch: '$MOD_ATOMIC_REPLACE': unpatching complete
|
||||
% rmmod $MOD_ATOMIC_REPLACE"
|
||||
fi
|
||||
|
||||
start_test "sysfs test stack_order value"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user