Linux Audio

Check our new training course

Loading...
v6.2
  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_livepatch
  8MOD_REPLACE=test_klp_atomic_replace
  9
 10setup_config
 11
 12
 13# - load a livepatch that modifies the output from /proc/cmdline and
 14#   verify correct behavior
 15# - unload the livepatch and make sure the patch was removed
 16
 17start_test "basic function patching"
 18
 19load_lp $MOD_LIVEPATCH
 20
 21if [[ "$(cat /proc/cmdline)" != "$MOD_LIVEPATCH: this has been live patched" ]] ; then
 22	echo -e "FAIL\n\n"
 23	die "livepatch kselftest(s) failed"
 24fi
 25
 26disable_lp $MOD_LIVEPATCH
 27unload_lp $MOD_LIVEPATCH
 28
 29if [[ "$(cat /proc/cmdline)" == "$MOD_LIVEPATCH: this has been live patched" ]] ; then
 30	echo -e "FAIL\n\n"
 31	die "livepatch kselftest(s) failed"
 32fi
 33
 34check_result "% modprobe $MOD_LIVEPATCH
 35livepatch: enabling patch '$MOD_LIVEPATCH'
 36livepatch: '$MOD_LIVEPATCH': initializing patching transition
 37livepatch: '$MOD_LIVEPATCH': starting patching transition
 38livepatch: '$MOD_LIVEPATCH': completing patching transition
 39livepatch: '$MOD_LIVEPATCH': patching complete
 40% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
 41livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
 42livepatch: '$MOD_LIVEPATCH': starting unpatching transition
 43livepatch: '$MOD_LIVEPATCH': completing unpatching transition
 44livepatch: '$MOD_LIVEPATCH': unpatching complete
 45% rmmod $MOD_LIVEPATCH"
 46
 47
 48# - load a livepatch that modifies the output from /proc/cmdline and
 49#   verify correct behavior
 50# - load another livepatch and verify that both livepatches are active
 51# - unload the second livepatch and verify that the first is still active
 52# - unload the first livepatch and verify none are active
 53
 54start_test "multiple livepatches"
 55
 56load_lp $MOD_LIVEPATCH
 57
 58grep 'live patched' /proc/cmdline > /dev/kmsg
 59grep 'live patched' /proc/meminfo > /dev/kmsg
 60
 61load_lp $MOD_REPLACE replace=0
 62
 63grep 'live patched' /proc/cmdline > /dev/kmsg
 64grep 'live patched' /proc/meminfo > /dev/kmsg
 65
 66disable_lp $MOD_REPLACE
 67unload_lp $MOD_REPLACE
 68
 69grep 'live patched' /proc/cmdline > /dev/kmsg
 70grep 'live patched' /proc/meminfo > /dev/kmsg
 71
 72disable_lp $MOD_LIVEPATCH
 73unload_lp $MOD_LIVEPATCH
 74
 75grep 'live patched' /proc/cmdline > /dev/kmsg
 76grep 'live patched' /proc/meminfo > /dev/kmsg
 77
 78check_result "% modprobe $MOD_LIVEPATCH
 79livepatch: enabling patch '$MOD_LIVEPATCH'
 80livepatch: '$MOD_LIVEPATCH': initializing patching transition
 81livepatch: '$MOD_LIVEPATCH': starting patching transition
 82livepatch: '$MOD_LIVEPATCH': completing patching transition
 83livepatch: '$MOD_LIVEPATCH': patching complete
 84$MOD_LIVEPATCH: this has been live patched
 85% modprobe $MOD_REPLACE replace=0
 86livepatch: enabling patch '$MOD_REPLACE'
 87livepatch: '$MOD_REPLACE': initializing patching transition
 88livepatch: '$MOD_REPLACE': starting patching transition
 89livepatch: '$MOD_REPLACE': completing patching transition
 90livepatch: '$MOD_REPLACE': patching complete
 91$MOD_LIVEPATCH: this has been live patched
 92$MOD_REPLACE: this has been live patched
 93% echo 0 > /sys/kernel/livepatch/$MOD_REPLACE/enabled
 94livepatch: '$MOD_REPLACE': initializing unpatching transition
 95livepatch: '$MOD_REPLACE': starting unpatching transition
 96livepatch: '$MOD_REPLACE': completing unpatching transition
 97livepatch: '$MOD_REPLACE': unpatching complete
 98% rmmod $MOD_REPLACE
 99$MOD_LIVEPATCH: this has been live patched
100% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
101livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
102livepatch: '$MOD_LIVEPATCH': starting unpatching transition
103livepatch: '$MOD_LIVEPATCH': completing unpatching transition
104livepatch: '$MOD_LIVEPATCH': unpatching complete
105% rmmod $MOD_LIVEPATCH"
106
107
108# - load a livepatch that modifies the output from /proc/cmdline and
109#   verify correct behavior
110# - load an atomic replace livepatch and verify that only the second is active
111# - remove the first livepatch and verify that the atomic replace livepatch
112#   is still active
113# - remove the atomic replace livepatch and verify that none are active
114
115start_test "atomic replace livepatch"
116
117load_lp $MOD_LIVEPATCH
118
119grep 'live patched' /proc/cmdline > /dev/kmsg
120grep 'live patched' /proc/meminfo > /dev/kmsg
121
122load_lp $MOD_REPLACE replace=1
123
124grep 'live patched' /proc/cmdline > /dev/kmsg
125grep 'live patched' /proc/meminfo > /dev/kmsg
126
127unload_lp $MOD_LIVEPATCH
128
129grep 'live patched' /proc/cmdline > /dev/kmsg
130grep 'live patched' /proc/meminfo > /dev/kmsg
131
132disable_lp $MOD_REPLACE
133unload_lp $MOD_REPLACE
134
135grep 'live patched' /proc/cmdline > /dev/kmsg
136grep 'live patched' /proc/meminfo > /dev/kmsg
137
138check_result "% modprobe $MOD_LIVEPATCH
139livepatch: enabling patch '$MOD_LIVEPATCH'
140livepatch: '$MOD_LIVEPATCH': initializing patching transition
141livepatch: '$MOD_LIVEPATCH': starting patching transition
142livepatch: '$MOD_LIVEPATCH': completing patching transition
143livepatch: '$MOD_LIVEPATCH': patching complete
144$MOD_LIVEPATCH: this has been live patched
145% modprobe $MOD_REPLACE replace=1
146livepatch: enabling patch '$MOD_REPLACE'
147livepatch: '$MOD_REPLACE': initializing patching transition
148livepatch: '$MOD_REPLACE': starting patching transition
149livepatch: '$MOD_REPLACE': completing patching transition
150livepatch: '$MOD_REPLACE': patching complete
151$MOD_REPLACE: this has been live patched
152% rmmod $MOD_LIVEPATCH
153$MOD_REPLACE: this has been live patched
154% echo 0 > /sys/kernel/livepatch/$MOD_REPLACE/enabled
155livepatch: '$MOD_REPLACE': initializing unpatching transition
156livepatch: '$MOD_REPLACE': starting unpatching transition
157livepatch: '$MOD_REPLACE': completing unpatching transition
158livepatch: '$MOD_REPLACE': unpatching complete
159% rmmod $MOD_REPLACE"
160
161
162exit 0
v6.8
  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_livepatch
  8MOD_REPLACE=test_klp_atomic_replace
  9
 10setup_config
 11
 12
 13# - load a livepatch that modifies the output from /proc/cmdline and
 14#   verify correct behavior
 15# - unload the livepatch and make sure the patch was removed
 16
 17start_test "basic function patching"
 18
 19load_lp $MOD_LIVEPATCH
 20
 21if [[ "$(cat /proc/cmdline)" != "$MOD_LIVEPATCH: this has been live patched" ]] ; then
 22	echo -e "FAIL\n\n"
 23	die "livepatch kselftest(s) failed"
 24fi
 25
 26disable_lp $MOD_LIVEPATCH
 27unload_lp $MOD_LIVEPATCH
 28
 29if [[ "$(cat /proc/cmdline)" == "$MOD_LIVEPATCH: this has been live patched" ]] ; then
 30	echo -e "FAIL\n\n"
 31	die "livepatch kselftest(s) failed"
 32fi
 33
 34check_result "% modprobe $MOD_LIVEPATCH
 35livepatch: enabling patch '$MOD_LIVEPATCH'
 36livepatch: '$MOD_LIVEPATCH': initializing patching transition
 37livepatch: '$MOD_LIVEPATCH': starting patching transition
 38livepatch: '$MOD_LIVEPATCH': completing patching transition
 39livepatch: '$MOD_LIVEPATCH': patching complete
 40% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
 41livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
 42livepatch: '$MOD_LIVEPATCH': starting unpatching transition
 43livepatch: '$MOD_LIVEPATCH': completing unpatching transition
 44livepatch: '$MOD_LIVEPATCH': unpatching complete
 45% rmmod $MOD_LIVEPATCH"
 46
 47
 48# - load a livepatch that modifies the output from /proc/cmdline and
 49#   verify correct behavior
 50# - load another livepatch and verify that both livepatches are active
 51# - unload the second livepatch and verify that the first is still active
 52# - unload the first livepatch and verify none are active
 53
 54start_test "multiple livepatches"
 55
 56load_lp $MOD_LIVEPATCH
 57
 58grep 'live patched' /proc/cmdline > /dev/kmsg
 59grep 'live patched' /proc/meminfo > /dev/kmsg
 60
 61load_lp $MOD_REPLACE replace=0
 62
 63grep 'live patched' /proc/cmdline > /dev/kmsg
 64grep 'live patched' /proc/meminfo > /dev/kmsg
 65
 66disable_lp $MOD_REPLACE
 67unload_lp $MOD_REPLACE
 68
 69grep 'live patched' /proc/cmdline > /dev/kmsg
 70grep 'live patched' /proc/meminfo > /dev/kmsg
 71
 72disable_lp $MOD_LIVEPATCH
 73unload_lp $MOD_LIVEPATCH
 74
 75grep 'live patched' /proc/cmdline > /dev/kmsg
 76grep 'live patched' /proc/meminfo > /dev/kmsg
 77
 78check_result "% modprobe $MOD_LIVEPATCH
 79livepatch: enabling patch '$MOD_LIVEPATCH'
 80livepatch: '$MOD_LIVEPATCH': initializing patching transition
 81livepatch: '$MOD_LIVEPATCH': starting patching transition
 82livepatch: '$MOD_LIVEPATCH': completing patching transition
 83livepatch: '$MOD_LIVEPATCH': patching complete
 84$MOD_LIVEPATCH: this has been live patched
 85% modprobe $MOD_REPLACE replace=0
 86livepatch: enabling patch '$MOD_REPLACE'
 87livepatch: '$MOD_REPLACE': initializing patching transition
 88livepatch: '$MOD_REPLACE': starting patching transition
 89livepatch: '$MOD_REPLACE': completing patching transition
 90livepatch: '$MOD_REPLACE': patching complete
 91$MOD_LIVEPATCH: this has been live patched
 92$MOD_REPLACE: this has been live patched
 93% echo 0 > /sys/kernel/livepatch/$MOD_REPLACE/enabled
 94livepatch: '$MOD_REPLACE': initializing unpatching transition
 95livepatch: '$MOD_REPLACE': starting unpatching transition
 96livepatch: '$MOD_REPLACE': completing unpatching transition
 97livepatch: '$MOD_REPLACE': unpatching complete
 98% rmmod $MOD_REPLACE
 99$MOD_LIVEPATCH: this has been live patched
100% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
101livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
102livepatch: '$MOD_LIVEPATCH': starting unpatching transition
103livepatch: '$MOD_LIVEPATCH': completing unpatching transition
104livepatch: '$MOD_LIVEPATCH': unpatching complete
105% rmmod $MOD_LIVEPATCH"
106
107
108# - load a livepatch that modifies the output from /proc/cmdline and
109#   verify correct behavior
110# - load an atomic replace livepatch and verify that only the second is active
111# - remove the first livepatch and verify that the atomic replace livepatch
112#   is still active
113# - remove the atomic replace livepatch and verify that none are active
114
115start_test "atomic replace livepatch"
116
117load_lp $MOD_LIVEPATCH
118
119grep 'live patched' /proc/cmdline > /dev/kmsg
120grep 'live patched' /proc/meminfo > /dev/kmsg
121
122load_lp $MOD_REPLACE replace=1
123
124grep 'live patched' /proc/cmdline > /dev/kmsg
125grep 'live patched' /proc/meminfo > /dev/kmsg
126
127unload_lp $MOD_LIVEPATCH
128
129grep 'live patched' /proc/cmdline > /dev/kmsg
130grep 'live patched' /proc/meminfo > /dev/kmsg
131
132disable_lp $MOD_REPLACE
133unload_lp $MOD_REPLACE
134
135grep 'live patched' /proc/cmdline > /dev/kmsg
136grep 'live patched' /proc/meminfo > /dev/kmsg
137
138check_result "% modprobe $MOD_LIVEPATCH
139livepatch: enabling patch '$MOD_LIVEPATCH'
140livepatch: '$MOD_LIVEPATCH': initializing patching transition
141livepatch: '$MOD_LIVEPATCH': starting patching transition
142livepatch: '$MOD_LIVEPATCH': completing patching transition
143livepatch: '$MOD_LIVEPATCH': patching complete
144$MOD_LIVEPATCH: this has been live patched
145% modprobe $MOD_REPLACE replace=1
146livepatch: enabling patch '$MOD_REPLACE'
147livepatch: '$MOD_REPLACE': initializing patching transition
148livepatch: '$MOD_REPLACE': starting patching transition
149livepatch: '$MOD_REPLACE': completing patching transition
150livepatch: '$MOD_REPLACE': patching complete
151$MOD_REPLACE: this has been live patched
152% rmmod $MOD_LIVEPATCH
153$MOD_REPLACE: this has been live patched
154% echo 0 > /sys/kernel/livepatch/$MOD_REPLACE/enabled
155livepatch: '$MOD_REPLACE': initializing unpatching transition
156livepatch: '$MOD_REPLACE': starting unpatching transition
157livepatch: '$MOD_REPLACE': completing unpatching transition
158livepatch: '$MOD_REPLACE': unpatching complete
159% rmmod $MOD_REPLACE"
160
161
162exit 0