test-callbacks.sh (4b4193256c8d3bc3a5397b5cd9494c2ad386317d) test-callbacks.sh (c4bbe83d27c2446a033cc0381c3fb6be5e8c41c7)
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3# Copyright (C) 2018 Joe Lawrence <joe.lawrence@redhat.com>
4
5. $(dirname $0)/functions.sh
6
7MOD_LIVEPATCH=test_klp_callbacks_demo
8MOD_LIVEPATCH2=test_klp_callbacks_demo2

--- 20 unchanged lines hidden (view full) ---

29start_test "target module before livepatch"
30
31load_mod $MOD_TARGET
32load_lp $MOD_LIVEPATCH
33disable_lp $MOD_LIVEPATCH
34unload_lp $MOD_LIVEPATCH
35unload_mod $MOD_TARGET
36
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3# Copyright (C) 2018 Joe Lawrence <joe.lawrence@redhat.com>
4
5. $(dirname $0)/functions.sh
6
7MOD_LIVEPATCH=test_klp_callbacks_demo
8MOD_LIVEPATCH2=test_klp_callbacks_demo2

--- 20 unchanged lines hidden (view full) ---

29start_test "target module before livepatch"
30
31load_mod $MOD_TARGET
32load_lp $MOD_LIVEPATCH
33disable_lp $MOD_LIVEPATCH
34unload_lp $MOD_LIVEPATCH
35unload_mod $MOD_TARGET
36
37check_result "% modprobe $MOD_TARGET
37check_result "% insmod test_modules/$MOD_TARGET.ko
38$MOD_TARGET: ${MOD_TARGET}_init
38$MOD_TARGET: ${MOD_TARGET}_init
39% modprobe $MOD_LIVEPATCH
39% insmod test_modules/$MOD_LIVEPATCH.ko
40livepatch: enabling patch '$MOD_LIVEPATCH'
41livepatch: '$MOD_LIVEPATCH': initializing patching transition
42$MOD_LIVEPATCH: pre_patch_callback: vmlinux
43$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state
44livepatch: '$MOD_LIVEPATCH': starting patching transition
45livepatch: '$MOD_LIVEPATCH': completing patching transition
46$MOD_LIVEPATCH: post_patch_callback: vmlinux
47$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state

--- 28 unchanged lines hidden (view full) ---

76start_test "module_coming notifier"
77
78load_lp $MOD_LIVEPATCH
79load_mod $MOD_TARGET
80disable_lp $MOD_LIVEPATCH
81unload_lp $MOD_LIVEPATCH
82unload_mod $MOD_TARGET
83
40livepatch: enabling patch '$MOD_LIVEPATCH'
41livepatch: '$MOD_LIVEPATCH': initializing patching transition
42$MOD_LIVEPATCH: pre_patch_callback: vmlinux
43$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state
44livepatch: '$MOD_LIVEPATCH': starting patching transition
45livepatch: '$MOD_LIVEPATCH': completing patching transition
46$MOD_LIVEPATCH: post_patch_callback: vmlinux
47$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state

--- 28 unchanged lines hidden (view full) ---

76start_test "module_coming notifier"
77
78load_lp $MOD_LIVEPATCH
79load_mod $MOD_TARGET
80disable_lp $MOD_LIVEPATCH
81unload_lp $MOD_LIVEPATCH
82unload_mod $MOD_TARGET
83
84check_result "% modprobe $MOD_LIVEPATCH
84check_result "% insmod test_modules/$MOD_LIVEPATCH.ko
85livepatch: enabling patch '$MOD_LIVEPATCH'
86livepatch: '$MOD_LIVEPATCH': initializing patching transition
87$MOD_LIVEPATCH: pre_patch_callback: vmlinux
88livepatch: '$MOD_LIVEPATCH': starting patching transition
89livepatch: '$MOD_LIVEPATCH': completing patching transition
90$MOD_LIVEPATCH: post_patch_callback: vmlinux
91livepatch: '$MOD_LIVEPATCH': patching complete
85livepatch: enabling patch '$MOD_LIVEPATCH'
86livepatch: '$MOD_LIVEPATCH': initializing patching transition
87$MOD_LIVEPATCH: pre_patch_callback: vmlinux
88livepatch: '$MOD_LIVEPATCH': starting patching transition
89livepatch: '$MOD_LIVEPATCH': completing patching transition
90$MOD_LIVEPATCH: post_patch_callback: vmlinux
91livepatch: '$MOD_LIVEPATCH': patching complete
92% modprobe $MOD_TARGET
92% insmod test_modules/$MOD_TARGET.ko
93livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
94$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
95$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
96$MOD_TARGET: ${MOD_TARGET}_init
97% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
98livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
99$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
100$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state

--- 23 unchanged lines hidden (view full) ---

124start_test "module_going notifier"
125
126load_mod $MOD_TARGET
127load_lp $MOD_LIVEPATCH
128unload_mod $MOD_TARGET
129disable_lp $MOD_LIVEPATCH
130unload_lp $MOD_LIVEPATCH
131
93livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
94$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
95$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
96$MOD_TARGET: ${MOD_TARGET}_init
97% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
98livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
99$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
100$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state

--- 23 unchanged lines hidden (view full) ---

124start_test "module_going notifier"
125
126load_mod $MOD_TARGET
127load_lp $MOD_LIVEPATCH
128unload_mod $MOD_TARGET
129disable_lp $MOD_LIVEPATCH
130unload_lp $MOD_LIVEPATCH
131
132check_result "% modprobe $MOD_TARGET
132check_result "% insmod test_modules/$MOD_TARGET.ko
133$MOD_TARGET: ${MOD_TARGET}_init
133$MOD_TARGET: ${MOD_TARGET}_init
134% modprobe $MOD_LIVEPATCH
134% insmod test_modules/$MOD_LIVEPATCH.ko
135livepatch: enabling patch '$MOD_LIVEPATCH'
136livepatch: '$MOD_LIVEPATCH': initializing patching transition
137$MOD_LIVEPATCH: pre_patch_callback: vmlinux
138$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state
139livepatch: '$MOD_LIVEPATCH': starting patching transition
140livepatch: '$MOD_LIVEPATCH': completing patching transition
141$MOD_LIVEPATCH: post_patch_callback: vmlinux
142$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state

--- 29 unchanged lines hidden (view full) ---

172start_test "module_coming and module_going notifiers"
173
174load_lp $MOD_LIVEPATCH
175load_mod $MOD_TARGET
176unload_mod $MOD_TARGET
177disable_lp $MOD_LIVEPATCH
178unload_lp $MOD_LIVEPATCH
179
135livepatch: enabling patch '$MOD_LIVEPATCH'
136livepatch: '$MOD_LIVEPATCH': initializing patching transition
137$MOD_LIVEPATCH: pre_patch_callback: vmlinux
138$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state
139livepatch: '$MOD_LIVEPATCH': starting patching transition
140livepatch: '$MOD_LIVEPATCH': completing patching transition
141$MOD_LIVEPATCH: post_patch_callback: vmlinux
142$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_LIVE] Normal state

--- 29 unchanged lines hidden (view full) ---

172start_test "module_coming and module_going notifiers"
173
174load_lp $MOD_LIVEPATCH
175load_mod $MOD_TARGET
176unload_mod $MOD_TARGET
177disable_lp $MOD_LIVEPATCH
178unload_lp $MOD_LIVEPATCH
179
180check_result "% modprobe $MOD_LIVEPATCH
180check_result "% insmod test_modules/$MOD_LIVEPATCH.ko
181livepatch: enabling patch '$MOD_LIVEPATCH'
182livepatch: '$MOD_LIVEPATCH': initializing patching transition
183$MOD_LIVEPATCH: pre_patch_callback: vmlinux
184livepatch: '$MOD_LIVEPATCH': starting patching transition
185livepatch: '$MOD_LIVEPATCH': completing patching transition
186$MOD_LIVEPATCH: post_patch_callback: vmlinux
187livepatch: '$MOD_LIVEPATCH': patching complete
181livepatch: enabling patch '$MOD_LIVEPATCH'
182livepatch: '$MOD_LIVEPATCH': initializing patching transition
183$MOD_LIVEPATCH: pre_patch_callback: vmlinux
184livepatch: '$MOD_LIVEPATCH': starting patching transition
185livepatch: '$MOD_LIVEPATCH': completing patching transition
186$MOD_LIVEPATCH: post_patch_callback: vmlinux
187livepatch: '$MOD_LIVEPATCH': patching complete
188% modprobe $MOD_TARGET
188% insmod test_modules/$MOD_TARGET.ko
189livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
190$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
191$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
192$MOD_TARGET: ${MOD_TARGET}_init
193% rmmod $MOD_TARGET
194$MOD_TARGET: ${MOD_TARGET}_exit
195$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
196livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'

--- 17 unchanged lines hidden (view full) ---

214# vmlinux.
215
216start_test "target module not present"
217
218load_lp $MOD_LIVEPATCH
219disable_lp $MOD_LIVEPATCH
220unload_lp $MOD_LIVEPATCH
221
189livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
190$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
191$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
192$MOD_TARGET: ${MOD_TARGET}_init
193% rmmod $MOD_TARGET
194$MOD_TARGET: ${MOD_TARGET}_exit
195$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
196livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'

--- 17 unchanged lines hidden (view full) ---

214# vmlinux.
215
216start_test "target module not present"
217
218load_lp $MOD_LIVEPATCH
219disable_lp $MOD_LIVEPATCH
220unload_lp $MOD_LIVEPATCH
221
222check_result "% modprobe $MOD_LIVEPATCH
222check_result "% insmod test_modules/$MOD_LIVEPATCH.ko
223livepatch: enabling patch '$MOD_LIVEPATCH'
224livepatch: '$MOD_LIVEPATCH': initializing patching transition
225$MOD_LIVEPATCH: pre_patch_callback: vmlinux
226livepatch: '$MOD_LIVEPATCH': starting patching transition
227livepatch: '$MOD_LIVEPATCH': completing patching transition
228$MOD_LIVEPATCH: post_patch_callback: vmlinux
229livepatch: '$MOD_LIVEPATCH': patching complete
230% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled

--- 18 unchanged lines hidden (view full) ---

249# module.
250
251start_test "pre-patch callback -ENODEV"
252
253load_mod $MOD_TARGET
254load_failing_mod $MOD_LIVEPATCH pre_patch_ret=-19
255unload_mod $MOD_TARGET
256
223livepatch: enabling patch '$MOD_LIVEPATCH'
224livepatch: '$MOD_LIVEPATCH': initializing patching transition
225$MOD_LIVEPATCH: pre_patch_callback: vmlinux
226livepatch: '$MOD_LIVEPATCH': starting patching transition
227livepatch: '$MOD_LIVEPATCH': completing patching transition
228$MOD_LIVEPATCH: post_patch_callback: vmlinux
229livepatch: '$MOD_LIVEPATCH': patching complete
230% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled

--- 18 unchanged lines hidden (view full) ---

249# module.
250
251start_test "pre-patch callback -ENODEV"
252
253load_mod $MOD_TARGET
254load_failing_mod $MOD_LIVEPATCH pre_patch_ret=-19
255unload_mod $MOD_TARGET
256
257check_result "% modprobe $MOD_TARGET
257check_result "% insmod test_modules/$MOD_TARGET.ko
258$MOD_TARGET: ${MOD_TARGET}_init
258$MOD_TARGET: ${MOD_TARGET}_init
259% modprobe $MOD_LIVEPATCH pre_patch_ret=-19
259% insmod test_modules/$MOD_LIVEPATCH.ko pre_patch_ret=-19
260livepatch: enabling patch '$MOD_LIVEPATCH'
261livepatch: '$MOD_LIVEPATCH': initializing patching transition
262test_klp_callbacks_demo: pre_patch_callback: vmlinux
263livepatch: pre-patch callback failed for object 'vmlinux'
264livepatch: failed to enable patch '$MOD_LIVEPATCH'
265livepatch: '$MOD_LIVEPATCH': canceling patching transition, going to unpatch
266livepatch: '$MOD_LIVEPATCH': completing unpatching transition
267livepatch: '$MOD_LIVEPATCH': unpatching complete
260livepatch: enabling patch '$MOD_LIVEPATCH'
261livepatch: '$MOD_LIVEPATCH': initializing patching transition
262test_klp_callbacks_demo: pre_patch_callback: vmlinux
263livepatch: pre-patch callback failed for object 'vmlinux'
264livepatch: failed to enable patch '$MOD_LIVEPATCH'
265livepatch: '$MOD_LIVEPATCH': canceling patching transition, going to unpatch
266livepatch: '$MOD_LIVEPATCH': completing unpatching transition
267livepatch: '$MOD_LIVEPATCH': unpatching complete
268modprobe: ERROR: could not insert '$MOD_LIVEPATCH': No such device
268insmod: ERROR: could not insert module test_modules/$MOD_LIVEPATCH.ko: No such device
269% rmmod $MOD_TARGET
270$MOD_TARGET: ${MOD_TARGET}_exit"
271
272
273# Similar to the previous test, setup a livepatch such that its vmlinux
274# pre-patch callback returns success. However, when a targeted kernel
275# module is later loaded, have the livepatch return a failing status
276# code.

--- 13 unchanged lines hidden (view full) ---

290start_test "module_coming + pre-patch callback -ENODEV"
291
292load_lp $MOD_LIVEPATCH
293set_pre_patch_ret $MOD_LIVEPATCH -19
294load_failing_mod $MOD_TARGET
295disable_lp $MOD_LIVEPATCH
296unload_lp $MOD_LIVEPATCH
297
269% rmmod $MOD_TARGET
270$MOD_TARGET: ${MOD_TARGET}_exit"
271
272
273# Similar to the previous test, setup a livepatch such that its vmlinux
274# pre-patch callback returns success. However, when a targeted kernel
275# module is later loaded, have the livepatch return a failing status
276# code.

--- 13 unchanged lines hidden (view full) ---

290start_test "module_coming + pre-patch callback -ENODEV"
291
292load_lp $MOD_LIVEPATCH
293set_pre_patch_ret $MOD_LIVEPATCH -19
294load_failing_mod $MOD_TARGET
295disable_lp $MOD_LIVEPATCH
296unload_lp $MOD_LIVEPATCH
297
298check_result "% modprobe $MOD_LIVEPATCH
298check_result "% insmod test_modules/$MOD_LIVEPATCH.ko
299livepatch: enabling patch '$MOD_LIVEPATCH'
300livepatch: '$MOD_LIVEPATCH': initializing patching transition
301$MOD_LIVEPATCH: pre_patch_callback: vmlinux
302livepatch: '$MOD_LIVEPATCH': starting patching transition
303livepatch: '$MOD_LIVEPATCH': completing patching transition
304$MOD_LIVEPATCH: post_patch_callback: vmlinux
305livepatch: '$MOD_LIVEPATCH': patching complete
306% echo -19 > /sys/module/$MOD_LIVEPATCH/parameters/pre_patch_ret
299livepatch: enabling patch '$MOD_LIVEPATCH'
300livepatch: '$MOD_LIVEPATCH': initializing patching transition
301$MOD_LIVEPATCH: pre_patch_callback: vmlinux
302livepatch: '$MOD_LIVEPATCH': starting patching transition
303livepatch: '$MOD_LIVEPATCH': completing patching transition
304$MOD_LIVEPATCH: post_patch_callback: vmlinux
305livepatch: '$MOD_LIVEPATCH': patching complete
306% echo -19 > /sys/module/$MOD_LIVEPATCH/parameters/pre_patch_ret
307% modprobe $MOD_TARGET
307% insmod test_modules/$MOD_TARGET.ko
308livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
309$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
310livepatch: pre-patch callback failed for object '$MOD_TARGET'
311livepatch: patch '$MOD_LIVEPATCH' failed for module '$MOD_TARGET', refusing to load module '$MOD_TARGET'
308livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
309$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
310livepatch: pre-patch callback failed for object '$MOD_TARGET'
311livepatch: patch '$MOD_LIVEPATCH' failed for module '$MOD_TARGET', refusing to load module '$MOD_TARGET'
312modprobe: ERROR: could not insert '$MOD_TARGET': No such device
312insmod: ERROR: could not insert module test_modules/$MOD_TARGET.ko: No such device
313% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
314livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
315$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
316livepatch: '$MOD_LIVEPATCH': starting unpatching transition
317livepatch: '$MOD_LIVEPATCH': completing unpatching transition
318$MOD_LIVEPATCH: post_unpatch_callback: vmlinux
319livepatch: '$MOD_LIVEPATCH': unpatching complete
320% rmmod $MOD_LIVEPATCH"

--- 14 unchanged lines hidden (view full) ---

335load_mod $MOD_TARGET_BUSY block_transition=N
336load_lp $MOD_LIVEPATCH
337load_mod $MOD_TARGET
338unload_mod $MOD_TARGET
339disable_lp $MOD_LIVEPATCH
340unload_lp $MOD_LIVEPATCH
341unload_mod $MOD_TARGET_BUSY
342
313% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
314livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
315$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
316livepatch: '$MOD_LIVEPATCH': starting unpatching transition
317livepatch: '$MOD_LIVEPATCH': completing unpatching transition
318$MOD_LIVEPATCH: post_unpatch_callback: vmlinux
319livepatch: '$MOD_LIVEPATCH': unpatching complete
320% rmmod $MOD_LIVEPATCH"

--- 14 unchanged lines hidden (view full) ---

335load_mod $MOD_TARGET_BUSY block_transition=N
336load_lp $MOD_LIVEPATCH
337load_mod $MOD_TARGET
338unload_mod $MOD_TARGET
339disable_lp $MOD_LIVEPATCH
340unload_lp $MOD_LIVEPATCH
341unload_mod $MOD_TARGET_BUSY
342
343check_result "% modprobe $MOD_TARGET_BUSY block_transition=N
343check_result "% insmod test_modules/$MOD_TARGET_BUSY.ko block_transition=N
344$MOD_TARGET_BUSY: ${MOD_TARGET_BUSY}_init
345$MOD_TARGET_BUSY: busymod_work_func enter
346$MOD_TARGET_BUSY: busymod_work_func exit
344$MOD_TARGET_BUSY: ${MOD_TARGET_BUSY}_init
345$MOD_TARGET_BUSY: busymod_work_func enter
346$MOD_TARGET_BUSY: busymod_work_func exit
347% modprobe $MOD_LIVEPATCH
347% insmod test_modules/$MOD_LIVEPATCH.ko
348livepatch: enabling patch '$MOD_LIVEPATCH'
349livepatch: '$MOD_LIVEPATCH': initializing patching transition
350$MOD_LIVEPATCH: pre_patch_callback: vmlinux
351$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET_BUSY -> [MODULE_STATE_LIVE] Normal state
352livepatch: '$MOD_LIVEPATCH': starting patching transition
353livepatch: '$MOD_LIVEPATCH': completing patching transition
354$MOD_LIVEPATCH: post_patch_callback: vmlinux
355$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET_BUSY -> [MODULE_STATE_LIVE] Normal state
356livepatch: '$MOD_LIVEPATCH': patching complete
348livepatch: enabling patch '$MOD_LIVEPATCH'
349livepatch: '$MOD_LIVEPATCH': initializing patching transition
350$MOD_LIVEPATCH: pre_patch_callback: vmlinux
351$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET_BUSY -> [MODULE_STATE_LIVE] Normal state
352livepatch: '$MOD_LIVEPATCH': starting patching transition
353livepatch: '$MOD_LIVEPATCH': completing patching transition
354$MOD_LIVEPATCH: post_patch_callback: vmlinux
355$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET_BUSY -> [MODULE_STATE_LIVE] Normal state
356livepatch: '$MOD_LIVEPATCH': patching complete
357% modprobe $MOD_TARGET
357% insmod test_modules/$MOD_TARGET.ko
358livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
359$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
360$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
361$MOD_TARGET: ${MOD_TARGET}_init
362% rmmod $MOD_TARGET
363$MOD_TARGET: ${MOD_TARGET}_exit
364$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
365livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'

--- 50 unchanged lines hidden (view full) ---

416 die "failed to stall transition"
417
418load_mod $MOD_TARGET
419unload_mod $MOD_TARGET
420disable_lp $MOD_LIVEPATCH
421unload_lp $MOD_LIVEPATCH
422unload_mod $MOD_TARGET_BUSY
423
358livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
359$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
360$MOD_LIVEPATCH: post_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
361$MOD_TARGET: ${MOD_TARGET}_init
362% rmmod $MOD_TARGET
363$MOD_TARGET: ${MOD_TARGET}_exit
364$MOD_LIVEPATCH: pre_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
365livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'

--- 50 unchanged lines hidden (view full) ---

416 die "failed to stall transition"
417
418load_mod $MOD_TARGET
419unload_mod $MOD_TARGET
420disable_lp $MOD_LIVEPATCH
421unload_lp $MOD_LIVEPATCH
422unload_mod $MOD_TARGET_BUSY
423
424check_result "% modprobe $MOD_TARGET_BUSY block_transition=Y
424check_result "% insmod test_modules/$MOD_TARGET_BUSY.ko block_transition=Y
425$MOD_TARGET_BUSY: ${MOD_TARGET_BUSY}_init
426$MOD_TARGET_BUSY: busymod_work_func enter
425$MOD_TARGET_BUSY: ${MOD_TARGET_BUSY}_init
426$MOD_TARGET_BUSY: busymod_work_func enter
427% modprobe $MOD_LIVEPATCH
427% insmod test_modules/$MOD_LIVEPATCH.ko
428livepatch: enabling patch '$MOD_LIVEPATCH'
429livepatch: '$MOD_LIVEPATCH': initializing patching transition
430$MOD_LIVEPATCH: pre_patch_callback: vmlinux
431$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET_BUSY -> [MODULE_STATE_LIVE] Normal state
432livepatch: '$MOD_LIVEPATCH': starting patching transition
428livepatch: enabling patch '$MOD_LIVEPATCH'
429livepatch: '$MOD_LIVEPATCH': initializing patching transition
430$MOD_LIVEPATCH: pre_patch_callback: vmlinux
431$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET_BUSY -> [MODULE_STATE_LIVE] Normal state
432livepatch: '$MOD_LIVEPATCH': starting patching transition
433% modprobe $MOD_TARGET
433% insmod test_modules/$MOD_TARGET.ko
434livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
435$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
436$MOD_TARGET: ${MOD_TARGET}_init
437% rmmod $MOD_TARGET
438$MOD_TARGET: ${MOD_TARGET}_exit
439livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'
440$MOD_LIVEPATCH: post_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
441% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled

--- 20 unchanged lines hidden (view full) ---

462
463load_lp $MOD_LIVEPATCH
464load_lp $MOD_LIVEPATCH2
465disable_lp $MOD_LIVEPATCH2
466disable_lp $MOD_LIVEPATCH
467unload_lp $MOD_LIVEPATCH2
468unload_lp $MOD_LIVEPATCH
469
434livepatch: applying patch '$MOD_LIVEPATCH' to loading module '$MOD_TARGET'
435$MOD_LIVEPATCH: pre_patch_callback: $MOD_TARGET -> [MODULE_STATE_COMING] Full formed, running module_init
436$MOD_TARGET: ${MOD_TARGET}_init
437% rmmod $MOD_TARGET
438$MOD_TARGET: ${MOD_TARGET}_exit
439livepatch: reverting patch '$MOD_LIVEPATCH' on unloading module '$MOD_TARGET'
440$MOD_LIVEPATCH: post_unpatch_callback: $MOD_TARGET -> [MODULE_STATE_GOING] Going away
441% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled

--- 20 unchanged lines hidden (view full) ---

462
463load_lp $MOD_LIVEPATCH
464load_lp $MOD_LIVEPATCH2
465disable_lp $MOD_LIVEPATCH2
466disable_lp $MOD_LIVEPATCH
467unload_lp $MOD_LIVEPATCH2
468unload_lp $MOD_LIVEPATCH
469
470check_result "% modprobe $MOD_LIVEPATCH
470check_result "% insmod test_modules/$MOD_LIVEPATCH.ko
471livepatch: enabling patch '$MOD_LIVEPATCH'
472livepatch: '$MOD_LIVEPATCH': initializing patching transition
473$MOD_LIVEPATCH: pre_patch_callback: vmlinux
474livepatch: '$MOD_LIVEPATCH': starting patching transition
475livepatch: '$MOD_LIVEPATCH': completing patching transition
476$MOD_LIVEPATCH: post_patch_callback: vmlinux
477livepatch: '$MOD_LIVEPATCH': patching complete
471livepatch: enabling patch '$MOD_LIVEPATCH'
472livepatch: '$MOD_LIVEPATCH': initializing patching transition
473$MOD_LIVEPATCH: pre_patch_callback: vmlinux
474livepatch: '$MOD_LIVEPATCH': starting patching transition
475livepatch: '$MOD_LIVEPATCH': completing patching transition
476$MOD_LIVEPATCH: post_patch_callback: vmlinux
477livepatch: '$MOD_LIVEPATCH': patching complete
478% modprobe $MOD_LIVEPATCH2
478% insmod test_modules/$MOD_LIVEPATCH2.ko
479livepatch: enabling patch '$MOD_LIVEPATCH2'
480livepatch: '$MOD_LIVEPATCH2': initializing patching transition
481$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
482livepatch: '$MOD_LIVEPATCH2': starting patching transition
483livepatch: '$MOD_LIVEPATCH2': completing patching transition
484$MOD_LIVEPATCH2: post_patch_callback: vmlinux
485livepatch: '$MOD_LIVEPATCH2': patching complete
486% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled

--- 31 unchanged lines hidden (view full) ---

518start_test "atomic replace"
519
520load_lp $MOD_LIVEPATCH
521load_lp $MOD_LIVEPATCH2 replace=1
522disable_lp $MOD_LIVEPATCH2
523unload_lp $MOD_LIVEPATCH2
524unload_lp $MOD_LIVEPATCH
525
479livepatch: enabling patch '$MOD_LIVEPATCH2'
480livepatch: '$MOD_LIVEPATCH2': initializing patching transition
481$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
482livepatch: '$MOD_LIVEPATCH2': starting patching transition
483livepatch: '$MOD_LIVEPATCH2': completing patching transition
484$MOD_LIVEPATCH2: post_patch_callback: vmlinux
485livepatch: '$MOD_LIVEPATCH2': patching complete
486% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled

--- 31 unchanged lines hidden (view full) ---

518start_test "atomic replace"
519
520load_lp $MOD_LIVEPATCH
521load_lp $MOD_LIVEPATCH2 replace=1
522disable_lp $MOD_LIVEPATCH2
523unload_lp $MOD_LIVEPATCH2
524unload_lp $MOD_LIVEPATCH
525
526check_result "% modprobe $MOD_LIVEPATCH
526check_result "% insmod test_modules/$MOD_LIVEPATCH.ko
527livepatch: enabling patch '$MOD_LIVEPATCH'
528livepatch: '$MOD_LIVEPATCH': initializing patching transition
529$MOD_LIVEPATCH: pre_patch_callback: vmlinux
530livepatch: '$MOD_LIVEPATCH': starting patching transition
531livepatch: '$MOD_LIVEPATCH': completing patching transition
532$MOD_LIVEPATCH: post_patch_callback: vmlinux
533livepatch: '$MOD_LIVEPATCH': patching complete
527livepatch: enabling patch '$MOD_LIVEPATCH'
528livepatch: '$MOD_LIVEPATCH': initializing patching transition
529$MOD_LIVEPATCH: pre_patch_callback: vmlinux
530livepatch: '$MOD_LIVEPATCH': starting patching transition
531livepatch: '$MOD_LIVEPATCH': completing patching transition
532$MOD_LIVEPATCH: post_patch_callback: vmlinux
533livepatch: '$MOD_LIVEPATCH': patching complete
534% modprobe $MOD_LIVEPATCH2 replace=1
534% insmod test_modules/$MOD_LIVEPATCH2.ko replace=1
535livepatch: enabling patch '$MOD_LIVEPATCH2'
536livepatch: '$MOD_LIVEPATCH2': initializing patching transition
537$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
538livepatch: '$MOD_LIVEPATCH2': starting patching transition
539livepatch: '$MOD_LIVEPATCH2': completing patching transition
540$MOD_LIVEPATCH2: post_patch_callback: vmlinux
541livepatch: '$MOD_LIVEPATCH2': patching complete
542% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
543livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
544$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
545livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
546livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
547$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
548livepatch: '$MOD_LIVEPATCH2': unpatching complete
549% rmmod $MOD_LIVEPATCH2
550% rmmod $MOD_LIVEPATCH"
551
552
553exit 0
535livepatch: enabling patch '$MOD_LIVEPATCH2'
536livepatch: '$MOD_LIVEPATCH2': initializing patching transition
537$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
538livepatch: '$MOD_LIVEPATCH2': starting patching transition
539livepatch: '$MOD_LIVEPATCH2': completing patching transition
540$MOD_LIVEPATCH2: post_patch_callback: vmlinux
541livepatch: '$MOD_LIVEPATCH2': patching complete
542% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
543livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
544$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
545livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
546livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
547$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
548livepatch: '$MOD_LIVEPATCH2': unpatching complete
549% rmmod $MOD_LIVEPATCH2
550% rmmod $MOD_LIVEPATCH"
551
552
553exit 0