Skip to content

Commit aa44f41

Browse files
committed
Merge tag 'livepatching-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
Pull livepatching update from Petr Mladek: - A new selftest for livepatching of a kprobed function * tag 'livepatching-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching: selftests: livepatch: test livepatching a kprobed function selftests: livepatch: save and restore kprobe state selftests: livepatch: rename KLP_SYSFS_DIR to SYSFS_KLP_DIR
2 parents 7d66d3a + 62597ed commit aa44f41

File tree

11 files changed

+152
-43
lines changed

11 files changed

+152
-43
lines changed

tools/testing/selftests/livepatch/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ TEST_PROGS := \
1010
test-state.sh \
1111
test-ftrace.sh \
1212
test-sysfs.sh \
13-
test-syscall.sh
13+
test-syscall.sh \
14+
test-kprobe.sh
1415

1516
TEST_FILES := settings
1617

tools/testing/selftests/livepatch/functions.sh

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66

77
MAX_RETRIES=600
88
RETRY_INTERVAL=".1" # seconds
9-
KLP_SYSFS_DIR="/sys/kernel/livepatch"
9+
SYSFS_KERNEL_DIR="/sys/kernel"
10+
SYSFS_KLP_DIR="$SYSFS_KERNEL_DIR/livepatch"
11+
SYSFS_DEBUG_DIR="$SYSFS_KERNEL_DIR/debug"
12+
SYSFS_KPROBES_DIR="$SYSFS_DEBUG_DIR/kprobes"
1013

1114
# Kselftest framework requirement - SKIP code is 4
1215
ksft_skip=4
@@ -55,22 +58,26 @@ function die() {
5558
}
5659

5760
function push_config() {
58-
DYNAMIC_DEBUG=$(grep '^kernel/livepatch' /sys/kernel/debug/dynamic_debug/control | \
61+
DYNAMIC_DEBUG=$(grep '^kernel/livepatch' "$SYSFS_DEBUG_DIR/dynamic_debug/control" | \
5962
awk -F'[: ]' '{print "file " $1 " line " $2 " " $4}')
6063
FTRACE_ENABLED=$(sysctl --values kernel.ftrace_enabled)
64+
KPROBE_ENABLED=$(cat "$SYSFS_KPROBES_DIR/enabled")
6165
}
6266

6367
function pop_config() {
6468
if [[ -n "$DYNAMIC_DEBUG" ]]; then
65-
echo -n "$DYNAMIC_DEBUG" > /sys/kernel/debug/dynamic_debug/control
69+
echo -n "$DYNAMIC_DEBUG" > "$SYSFS_DEBUG_DIR/dynamic_debug/control"
6670
fi
6771
if [[ -n "$FTRACE_ENABLED" ]]; then
6872
sysctl kernel.ftrace_enabled="$FTRACE_ENABLED" &> /dev/null
6973
fi
74+
if [[ -n "$KPROBE_ENABLED" ]]; then
75+
echo "$KPROBE_ENABLED" > "$SYSFS_KPROBES_DIR/enabled"
76+
fi
7077
}
7178

7279
function set_dynamic_debug() {
73-
cat <<-EOF > /sys/kernel/debug/dynamic_debug/control
80+
cat <<-EOF > "$SYSFS_DEBUG_DIR/dynamic_debug/control"
7481
file kernel/livepatch/* +p
7582
func klp_try_switch_task -p
7683
EOF
@@ -183,7 +190,7 @@ function load_lp_nowait() {
183190
__load_mod "$mod" "$@"
184191

185192
# Wait for livepatch in sysfs ...
186-
loop_until '[[ -e "/sys/kernel/livepatch/$mod" ]]' ||
193+
loop_until '[[ -e "$SYSFS_KLP_DIR/$mod" ]]' ||
187194
die "failed to load module $mod (sysfs)"
188195
}
189196

@@ -196,7 +203,7 @@ function load_lp() {
196203
load_lp_nowait "$mod" "$@"
197204

198205
# Wait until the transition finishes ...
199-
loop_until 'grep -q '^0$' /sys/kernel/livepatch/$mod/transition' ||
206+
loop_until 'grep -q '^0$' $SYSFS_KLP_DIR/$mod/transition' ||
200207
die "failed to complete transition"
201208
}
202209

@@ -246,12 +253,12 @@ function unload_lp() {
246253
function disable_lp() {
247254
local mod="$1"
248255

249-
log "% echo 0 > /sys/kernel/livepatch/$mod/enabled"
250-
echo 0 > /sys/kernel/livepatch/"$mod"/enabled
256+
log "% echo 0 > $SYSFS_KLP_DIR/$mod/enabled"
257+
echo 0 > "$SYSFS_KLP_DIR/$mod/enabled"
251258

252259
# Wait until the transition finishes and the livepatch gets
253260
# removed from sysfs...
254-
loop_until '[[ ! -e "/sys/kernel/livepatch/$mod" ]]' ||
261+
loop_until '[[ ! -e "$SYSFS_KLP_DIR/$mod" ]]' ||
255262
die "failed to disable livepatch $mod"
256263
}
257264

@@ -322,7 +329,7 @@ function check_sysfs_rights() {
322329
local rel_path="$1"; shift
323330
local expected_rights="$1"; shift
324331

325-
local path="$KLP_SYSFS_DIR/$mod/$rel_path"
332+
local path="$SYSFS_KLP_DIR/$mod/$rel_path"
326333
local rights=$(/bin/stat --format '%A' "$path")
327334
if test "$rights" != "$expected_rights" ; then
328335
die "Unexpected access rights of $path: $expected_rights vs. $rights"
@@ -338,7 +345,7 @@ function check_sysfs_value() {
338345
local rel_path="$1"; shift
339346
local expected_value="$1"; shift
340347

341-
local path="$KLP_SYSFS_DIR/$mod/$rel_path"
348+
local path="$SYSFS_KLP_DIR/$mod/$rel_path"
342349
local value=`cat $path`
343350
if test "$value" != "$expected_value" ; then
344351
die "Unexpected value in $path: $expected_value vs. $value"

tools/testing/selftests/livepatch/test-callbacks.sh

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ livepatch: '$MOD_LIVEPATCH': completing patching transition
4646
$MOD_LIVEPATCH: post_patch_callback: vmlinux
4747
$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state
4848
livepatch: '$MOD_LIVEPATCH': patching complete
49-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
49+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
5050
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
5151
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
5252
$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state
@@ -94,7 +94,7 @@ livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
9494
$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
9595
$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
9696
$MOD_TARGET: ${MOD_TARGET}_init
97-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
97+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
9898
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
9999
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
100100
$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state
@@ -146,7 +146,7 @@ $MOD_TARGET: ${MOD_TARGET}_exit
146146
$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
147147
livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'
148148
$MOD_LIVEPATCH: post_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
149-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
149+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
150150
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
151151
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
152152
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
@@ -195,7 +195,7 @@ $MOD_TARGET: ${MOD_TARGET}_exit
195195
$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
196196
livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'
197197
$MOD_LIVEPATCH: post_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
198-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
198+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
199199
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
200200
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
201201
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
@@ -227,7 +227,7 @@ livepatch: '$MOD_LIVEPATCH': starting patching transition
227227
livepatch: '$MOD_LIVEPATCH': completing patching transition
228228
$MOD_LIVEPATCH: post_patch_callback: vmlinux
229229
livepatch: '$MOD_LIVEPATCH': patching complete
230-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
230+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
231231
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
232232
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
233233
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
@@ -310,7 +310,7 @@ $MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full fo
310310
livepatch: pre-patch callback failed for object '$MOD_TARGET'
311311
livepatch: patch '$MOD_LIVEPATCH' failed for module '$MOD_TARGET', refusing to load module '$MOD_TARGET'
312312
insmod: ERROR: could not insert module test_modules/$MOD_TARGET.ko: No such device
313-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
313+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
314314
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
315315
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
316316
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
@@ -364,7 +364,7 @@ $MOD_TARGET: ${MOD_TARGET}_exit
364364
$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
365365
livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'
366366
$MOD_LIVEPATCH: post_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
367-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
367+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
368368
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
369369
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
370370
$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET_BUSY -> [MODULE_STATE_LIVE] Normal state
@@ -412,7 +412,7 @@ load_lp_nowait $MOD_LIVEPATCH
412412

413413
# Wait until the livepatch reports in-transition state, i.e. that it's
414414
# stalled on $MOD_TARGET_BUSY::busymod_work_func()
415-
loop_until 'grep -q '^1$' /sys/kernel/livepatch/$MOD_LIVEPATCH/transition' ||
415+
loop_until 'grep -q '^1$' $SYSFS_KLP_DIR/$MOD_LIVEPATCH/transition' ||
416416
die "failed to stall transition"
417417

418418
load_mod $MOD_TARGET
@@ -438,7 +438,7 @@ $MOD_TARGET: ${MOD_TARGET}_init
438438
$MOD_TARGET: ${MOD_TARGET}_exit
439439
livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'
440440
$MOD_LIVEPATCH: post_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
441-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
441+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
442442
livepatch: '$MOD_LIVEPATCH': reversing transition from patching to unpatching
443443
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
444444
livepatch: '$MOD_LIVEPATCH': completing unpatching transition
@@ -483,14 +483,14 @@ livepatch: '$MOD_LIVEPATCH2': starting patching transition
483483
livepatch: '$MOD_LIVEPATCH2': completing patching transition
484484
$MOD_LIVEPATCH2: post_patch_callback: vmlinux
485485
livepatch: '$MOD_LIVEPATCH2': patching complete
486-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
486+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled
487487
livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
488488
$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
489489
livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
490490
livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
491491
$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
492492
livepatch: '$MOD_LIVEPATCH2': unpatching complete
493-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
493+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
494494
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
495495
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
496496
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
@@ -539,7 +539,7 @@ livepatch: '$MOD_LIVEPATCH2': starting patching transition
539539
livepatch: '$MOD_LIVEPATCH2': completing patching transition
540540
$MOD_LIVEPATCH2: post_patch_callback: vmlinux
541541
livepatch: '$MOD_LIVEPATCH2': patching complete
542-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
542+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled
543543
livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
544544
$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
545545
livepatch: '$MOD_LIVEPATCH2': starting unpatching transition

tools/testing/selftests/livepatch/test-ftrace.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ livepatch: '$MOD_LIVEPATCH': starting patching transition
5353
livepatch: '$MOD_LIVEPATCH': completing patching transition
5454
livepatch: '$MOD_LIVEPATCH': patching complete
5555
livepatch: sysctl: setting key \"kernel.ftrace_enabled\": Device or resource busy
56-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
56+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
5757
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
5858
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
5959
livepatch: '$MOD_LIVEPATCH': completing unpatching transition
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: GPL-2.0
3+
# Copyright (C) 2024 SUSE
4+
# Author: Michael Vetter <mvetter@suse.com>
5+
6+
. $(dirname $0)/functions.sh
7+
8+
MOD_LIVEPATCH=test_klp_livepatch
9+
MOD_KPROBE=test_klp_kprobe
10+
11+
setup_config
12+
13+
# Kprobe a function and verify that we can't livepatch that same function
14+
# when it uses a post_handler since only one IPMODIFY maybe be registered
15+
# to any given function at a time.
16+
17+
start_test "livepatch interaction with kprobed function with post_handler"
18+
19+
echo 1 > "$SYSFS_KPROBES_DIR/enabled"
20+
21+
load_mod $MOD_KPROBE has_post_handler=true
22+
load_failing_mod $MOD_LIVEPATCH
23+
unload_mod $MOD_KPROBE
24+
25+
check_result "% insmod test_modules/test_klp_kprobe.ko has_post_handler=true
26+
% insmod test_modules/$MOD_LIVEPATCH.ko
27+
livepatch: enabling patch '$MOD_LIVEPATCH'
28+
livepatch: '$MOD_LIVEPATCH': initializing patching transition
29+
livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
30+
livepatch: failed to patch object 'vmlinux'
31+
livepatch: failed to enable patch '$MOD_LIVEPATCH'
32+
livepatch: '$MOD_LIVEPATCH': canceling patching transition, going to unpatch
33+
livepatch: '$MOD_LIVEPATCH': completing unpatching transition
34+
livepatch: '$MOD_LIVEPATCH': unpatching complete
35+
insmod: ERROR: could not insert module test_modules/$MOD_LIVEPATCH.ko: Device or resource busy
36+
% rmmod test_klp_kprobe"
37+
38+
start_test "livepatch interaction with kprobed function without post_handler"
39+
40+
load_mod $MOD_KPROBE has_post_handler=false
41+
load_lp $MOD_LIVEPATCH
42+
43+
unload_mod $MOD_KPROBE
44+
disable_lp $MOD_LIVEPATCH
45+
unload_lp $MOD_LIVEPATCH
46+
47+
check_result "% insmod test_modules/test_klp_kprobe.ko has_post_handler=false
48+
% insmod test_modules/$MOD_LIVEPATCH.ko
49+
livepatch: enabling patch '$MOD_LIVEPATCH'
50+
livepatch: '$MOD_LIVEPATCH': initializing patching transition
51+
livepatch: '$MOD_LIVEPATCH': starting patching transition
52+
livepatch: '$MOD_LIVEPATCH': completing patching transition
53+
livepatch: '$MOD_LIVEPATCH': patching complete
54+
% rmmod test_klp_kprobe
55+
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
56+
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
57+
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
58+
livepatch: '$MOD_LIVEPATCH': completing unpatching transition
59+
livepatch: '$MOD_LIVEPATCH': unpatching complete
60+
% rmmod $MOD_LIVEPATCH"
61+
62+
exit 0

tools/testing/selftests/livepatch/test-livepatch.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ livepatch: '$MOD_LIVEPATCH1': initializing patching transition
3939
livepatch: '$MOD_LIVEPATCH1': starting patching transition
4040
livepatch: '$MOD_LIVEPATCH1': completing patching transition
4141
livepatch: '$MOD_LIVEPATCH1': patching complete
42-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH1/enabled
42+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH1/enabled
4343
livepatch: '$MOD_LIVEPATCH1': initializing unpatching transition
4444
livepatch: '$MOD_LIVEPATCH1': starting unpatching transition
4545
livepatch: '$MOD_LIVEPATCH1': completing unpatching transition
@@ -92,14 +92,14 @@ livepatch: '$MOD_REPLACE': completing patching transition
9292
livepatch: '$MOD_REPLACE': patching complete
9393
$MOD_LIVEPATCH1: this has been live patched
9494
$MOD_REPLACE: this has been live patched
95-
% echo 0 > /sys/kernel/livepatch/$MOD_REPLACE/enabled
95+
% echo 0 > $SYSFS_KLP_DIR/$MOD_REPLACE/enabled
9696
livepatch: '$MOD_REPLACE': initializing unpatching transition
9797
livepatch: '$MOD_REPLACE': starting unpatching transition
9898
livepatch: '$MOD_REPLACE': completing unpatching transition
9999
livepatch: '$MOD_REPLACE': unpatching complete
100100
% rmmod $MOD_REPLACE
101101
$MOD_LIVEPATCH1: this has been live patched
102-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH1/enabled
102+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH1/enabled
103103
livepatch: '$MOD_LIVEPATCH1': initializing unpatching transition
104104
livepatch: '$MOD_LIVEPATCH1': starting unpatching transition
105105
livepatch: '$MOD_LIVEPATCH1': completing unpatching transition
@@ -128,7 +128,7 @@ for mod in $MOD_LIVEPATCH2 $MOD_LIVEPATCH3; do
128128
load_lp "$mod"
129129
done
130130

131-
mods=(/sys/kernel/livepatch/*)
131+
mods=($SYSFS_KLP_DIR/*)
132132
nmods=${#mods[@]}
133133
if [ "$nmods" -ne 3 ]; then
134134
die "Expecting three modules listed, found $nmods"
@@ -139,7 +139,7 @@ load_lp $MOD_REPLACE replace=1
139139
grep 'live patched' /proc/cmdline > /dev/kmsg
140140
grep 'live patched' /proc/meminfo > /dev/kmsg
141141

142-
loop_until 'mods=(/sys/kernel/livepatch/*); nmods=${#mods[@]}; [[ "$nmods" -eq 1 ]]' ||
142+
loop_until 'mods=($SYSFS_KLP_DIR/*); nmods=${#mods[@]}; [[ "$nmods" -eq 1 ]]' ||
143143
die "Expecting only one moduled listed, found $nmods"
144144

145145
# These modules were disabled by the atomic replace
@@ -188,7 +188,7 @@ $MOD_REPLACE: this has been live patched
188188
% rmmod $MOD_LIVEPATCH2
189189
% rmmod $MOD_LIVEPATCH1
190190
$MOD_REPLACE: this has been live patched
191-
% echo 0 > /sys/kernel/livepatch/$MOD_REPLACE/enabled
191+
% echo 0 > $SYSFS_KLP_DIR/$MOD_REPLACE/enabled
192192
livepatch: '$MOD_REPLACE': initializing unpatching transition
193193
livepatch: '$MOD_REPLACE': starting unpatching transition
194194
livepatch: '$MOD_REPLACE': completing unpatching transition

tools/testing/selftests/livepatch/test-state.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ livepatch: '$MOD_LIVEPATCH': completing patching transition
2929
$MOD_LIVEPATCH: post_patch_callback: vmlinux
3030
$MOD_LIVEPATCH: fix_console_loglevel: fixing console_loglevel
3131
livepatch: '$MOD_LIVEPATCH': patching complete
32-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
32+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
3333
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
3434
$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
3535
$MOD_LIVEPATCH: restore_console_loglevel: restoring console_loglevel
@@ -72,7 +72,7 @@ $MOD_LIVEPATCH2: post_patch_callback: vmlinux
7272
$MOD_LIVEPATCH2: fix_console_loglevel: taking over the console_loglevel change
7373
livepatch: '$MOD_LIVEPATCH2': patching complete
7474
% rmmod $MOD_LIVEPATCH
75-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
75+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled
7676
livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
7777
$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
7878
$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel
@@ -127,7 +127,7 @@ livepatch: '$MOD_LIVEPATCH2': completing patching transition
127127
$MOD_LIVEPATCH2: post_patch_callback: vmlinux
128128
$MOD_LIVEPATCH2: fix_console_loglevel: taking over the console_loglevel change
129129
livepatch: '$MOD_LIVEPATCH2': patching complete
130-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
130+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled
131131
livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
132132
$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
133133
$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel
@@ -162,7 +162,7 @@ livepatch: '$MOD_LIVEPATCH2': patching complete
162162
% insmod test_modules/$MOD_LIVEPATCH.ko
163163
livepatch: Livepatch patch ($MOD_LIVEPATCH) is not compatible with the already installed livepatches.
164164
insmod: ERROR: could not insert module test_modules/$MOD_LIVEPATCH.ko: Invalid parameters
165-
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
165+
% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled
166166
livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
167167
$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
168168
$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel

tools/testing/selftests/livepatch/test-syscall.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ pid_list=$(echo ${pids[@]} | tr ' ' ',')
2727
load_lp $MOD_SYSCALL klp_pids=$pid_list
2828

2929
# wait for all tasks to transition to patched state
30-
loop_until 'grep -q '^0$' /sys/kernel/test_klp_syscall/npids'
30+
loop_until 'grep -q '^0$' $SYSFS_KERNEL_DIR/$MOD_SYSCALL/npids'
3131

32-
pending_pids=$(cat /sys/kernel/test_klp_syscall/npids)
32+
pending_pids=$(cat $SYSFS_KERNEL_DIR/$MOD_SYSCALL/npids)
3333
log "$MOD_SYSCALL: Remaining not livepatched processes: $pending_pids"
3434

3535
for pid in ${pids[@]}; do
@@ -46,7 +46,7 @@ livepatch: '$MOD_SYSCALL': starting patching transition
4646
livepatch: '$MOD_SYSCALL': completing patching transition
4747
livepatch: '$MOD_SYSCALL': patching complete
4848
$MOD_SYSCALL: Remaining not livepatched processes: 0
49-
% echo 0 > /sys/kernel/livepatch/$MOD_SYSCALL/enabled
49+
% echo 0 > $SYSFS_KLP_DIR/$MOD_SYSCALL/enabled
5050
livepatch: '$MOD_SYSCALL': initializing unpatching transition
5151
livepatch: '$MOD_SYSCALL': starting unpatching transition
5252
livepatch: '$MOD_SYSCALL': completing unpatching transition

0 commit comments

Comments
 (0)