Linux Audio

Check our new training course

Loading...
v6.2
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3# Copyright (C) 2019 SUSE
  4
  5. $(dirname $0)/functions.sh
  6
  7MOD_LIVEPATCH=test_klp_state
  8MOD_LIVEPATCH2=test_klp_state2
  9MOD_LIVEPATCH3=test_klp_state3
 10
 11setup_config
 12
 13
 14# Load and remove a module that modifies the system state
 15
 16start_test "system state modification"
 17
 18load_lp $MOD_LIVEPATCH
 19disable_lp $MOD_LIVEPATCH
 20unload_lp $MOD_LIVEPATCH
 21
 22check_result "% modprobe $MOD_LIVEPATCH
 23livepatch: enabling patch '$MOD_LIVEPATCH'
 24livepatch: '$MOD_LIVEPATCH': initializing patching transition
 25$MOD_LIVEPATCH: pre_patch_callback: vmlinux
 26$MOD_LIVEPATCH: allocate_loglevel_state: allocating space to store console_loglevel
 27livepatch: '$MOD_LIVEPATCH': starting patching transition
 28livepatch: '$MOD_LIVEPATCH': completing patching transition
 29$MOD_LIVEPATCH: post_patch_callback: vmlinux
 30$MOD_LIVEPATCH: fix_console_loglevel: fixing console_loglevel
 31livepatch: '$MOD_LIVEPATCH': patching complete
 32% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
 33livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
 34$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
 35$MOD_LIVEPATCH: restore_console_loglevel: restoring console_loglevel
 36livepatch: '$MOD_LIVEPATCH': starting unpatching transition
 37livepatch: '$MOD_LIVEPATCH': completing unpatching transition
 38$MOD_LIVEPATCH: post_unpatch_callback: vmlinux
 39$MOD_LIVEPATCH: free_loglevel_state: freeing space for the stored console_loglevel
 40livepatch: '$MOD_LIVEPATCH': unpatching complete
 41% rmmod $MOD_LIVEPATCH"
 42
 43
 44# Take over system state change by a cumulative patch
 45
 46start_test "taking over system state modification"
 47
 48load_lp $MOD_LIVEPATCH
 49load_lp $MOD_LIVEPATCH2
 50unload_lp $MOD_LIVEPATCH
 51disable_lp $MOD_LIVEPATCH2
 52unload_lp $MOD_LIVEPATCH2
 53
 54check_result "% modprobe $MOD_LIVEPATCH
 55livepatch: enabling patch '$MOD_LIVEPATCH'
 56livepatch: '$MOD_LIVEPATCH': initializing patching transition
 57$MOD_LIVEPATCH: pre_patch_callback: vmlinux
 58$MOD_LIVEPATCH: allocate_loglevel_state: allocating space to store console_loglevel
 59livepatch: '$MOD_LIVEPATCH': starting patching transition
 60livepatch: '$MOD_LIVEPATCH': completing patching transition
 61$MOD_LIVEPATCH: post_patch_callback: vmlinux
 62$MOD_LIVEPATCH: fix_console_loglevel: fixing console_loglevel
 63livepatch: '$MOD_LIVEPATCH': patching complete
 64% modprobe $MOD_LIVEPATCH2
 65livepatch: enabling patch '$MOD_LIVEPATCH2'
 66livepatch: '$MOD_LIVEPATCH2': initializing patching transition
 67$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
 68$MOD_LIVEPATCH2: allocate_loglevel_state: space to store console_loglevel already allocated
 69livepatch: '$MOD_LIVEPATCH2': starting patching transition
 70livepatch: '$MOD_LIVEPATCH2': completing patching transition
 71$MOD_LIVEPATCH2: post_patch_callback: vmlinux
 72$MOD_LIVEPATCH2: fix_console_loglevel: taking over the console_loglevel change
 73livepatch: '$MOD_LIVEPATCH2': patching complete
 74% rmmod $MOD_LIVEPATCH
 75% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
 76livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
 77$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
 78$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel
 79livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
 80livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
 81$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
 82$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel
 83livepatch: '$MOD_LIVEPATCH2': unpatching complete
 84% rmmod $MOD_LIVEPATCH2"
 85
 86
 87# Take over system state change by a cumulative patch
 88
 89start_test "compatible cumulative livepatches"
 90
 91load_lp $MOD_LIVEPATCH2
 92load_lp $MOD_LIVEPATCH3
 93unload_lp $MOD_LIVEPATCH2
 94load_lp $MOD_LIVEPATCH2
 95disable_lp $MOD_LIVEPATCH2
 96unload_lp $MOD_LIVEPATCH2
 97unload_lp $MOD_LIVEPATCH3
 98
 99check_result "% modprobe $MOD_LIVEPATCH2
100livepatch: enabling patch '$MOD_LIVEPATCH2'
101livepatch: '$MOD_LIVEPATCH2': initializing patching transition
102$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
103$MOD_LIVEPATCH2: allocate_loglevel_state: allocating space to store console_loglevel
104livepatch: '$MOD_LIVEPATCH2': starting patching transition
105livepatch: '$MOD_LIVEPATCH2': completing patching transition
106$MOD_LIVEPATCH2: post_patch_callback: vmlinux
107$MOD_LIVEPATCH2: fix_console_loglevel: fixing console_loglevel
108livepatch: '$MOD_LIVEPATCH2': patching complete
109% modprobe $MOD_LIVEPATCH3
110livepatch: enabling patch '$MOD_LIVEPATCH3'
111livepatch: '$MOD_LIVEPATCH3': initializing patching transition
112$MOD_LIVEPATCH3: pre_patch_callback: vmlinux
113$MOD_LIVEPATCH3: allocate_loglevel_state: space to store console_loglevel already allocated
114livepatch: '$MOD_LIVEPATCH3': starting patching transition
115livepatch: '$MOD_LIVEPATCH3': completing patching transition
116$MOD_LIVEPATCH3: post_patch_callback: vmlinux
117$MOD_LIVEPATCH3: fix_console_loglevel: taking over the console_loglevel change
118livepatch: '$MOD_LIVEPATCH3': patching complete
119% rmmod $MOD_LIVEPATCH2
120% modprobe $MOD_LIVEPATCH2
121livepatch: enabling patch '$MOD_LIVEPATCH2'
122livepatch: '$MOD_LIVEPATCH2': initializing patching transition
123$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
124$MOD_LIVEPATCH2: allocate_loglevel_state: space to store console_loglevel already allocated
125livepatch: '$MOD_LIVEPATCH2': starting patching transition
126livepatch: '$MOD_LIVEPATCH2': completing patching transition
127$MOD_LIVEPATCH2: post_patch_callback: vmlinux
128$MOD_LIVEPATCH2: fix_console_loglevel: taking over the console_loglevel change
129livepatch: '$MOD_LIVEPATCH2': patching complete
130% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
131livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
132$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
133$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel
134livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
135livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
136$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
137$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel
138livepatch: '$MOD_LIVEPATCH2': unpatching complete
139% rmmod $MOD_LIVEPATCH2
140% rmmod $MOD_LIVEPATCH3"
141
142
143# Failure caused by incompatible cumulative livepatches
144
145start_test "incompatible cumulative livepatches"
146
147load_lp $MOD_LIVEPATCH2
148load_failing_mod $MOD_LIVEPATCH
149disable_lp $MOD_LIVEPATCH2
150unload_lp $MOD_LIVEPATCH2
151
152check_result "% modprobe $MOD_LIVEPATCH2
153livepatch: enabling patch '$MOD_LIVEPATCH2'
154livepatch: '$MOD_LIVEPATCH2': initializing patching transition
155$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
156$MOD_LIVEPATCH2: allocate_loglevel_state: allocating space to store console_loglevel
157livepatch: '$MOD_LIVEPATCH2': starting patching transition
158livepatch: '$MOD_LIVEPATCH2': completing patching transition
159$MOD_LIVEPATCH2: post_patch_callback: vmlinux
160$MOD_LIVEPATCH2: fix_console_loglevel: fixing console_loglevel
161livepatch: '$MOD_LIVEPATCH2': patching complete
162% modprobe $MOD_LIVEPATCH
163livepatch: Livepatch patch ($MOD_LIVEPATCH) is not compatible with the already installed livepatches.
164modprobe: ERROR: could not insert '$MOD_LIVEPATCH': Invalid argument
165% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled
166livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
167$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
168$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel
169livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
170livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
171$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
172$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel
173livepatch: '$MOD_LIVEPATCH2': unpatching complete
174% rmmod $MOD_LIVEPATCH2"
175
176exit 0
v6.13.7
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3# Copyright (C) 2019 SUSE
  4
  5. $(dirname $0)/functions.sh
  6
  7MOD_LIVEPATCH=test_klp_state
  8MOD_LIVEPATCH2=test_klp_state2
  9MOD_LIVEPATCH3=test_klp_state3
 10
 11setup_config
 12
 13
 14# Load and remove a module that modifies the system state
 15
 16start_test "system state modification"
 17
 18load_lp $MOD_LIVEPATCH
 19disable_lp $MOD_LIVEPATCH
 20unload_lp $MOD_LIVEPATCH
 21
 22check_result "% insmod test_modules/$MOD_LIVEPATCH.ko
 23livepatch: enabling patch '$MOD_LIVEPATCH'
 24livepatch: '$MOD_LIVEPATCH': initializing patching transition
 25$MOD_LIVEPATCH: pre_patch_callback: vmlinux
 26$MOD_LIVEPATCH: allocate_loglevel_state: allocating space to store console_loglevel
 27livepatch: '$MOD_LIVEPATCH': starting patching transition
 28livepatch: '$MOD_LIVEPATCH': completing patching transition
 29$MOD_LIVEPATCH: post_patch_callback: vmlinux
 30$MOD_LIVEPATCH: fix_console_loglevel: fixing console_loglevel
 31livepatch: '$MOD_LIVEPATCH': patching complete
 32% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled
 33livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
 34$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux
 35$MOD_LIVEPATCH: restore_console_loglevel: restoring console_loglevel
 36livepatch: '$MOD_LIVEPATCH': starting unpatching transition
 37livepatch: '$MOD_LIVEPATCH': completing unpatching transition
 38$MOD_LIVEPATCH: post_unpatch_callback: vmlinux
 39$MOD_LIVEPATCH: free_loglevel_state: freeing space for the stored console_loglevel
 40livepatch: '$MOD_LIVEPATCH': unpatching complete
 41% rmmod $MOD_LIVEPATCH"
 42
 43
 44# Take over system state change by a cumulative patch
 45
 46start_test "taking over system state modification"
 47
 48load_lp $MOD_LIVEPATCH
 49load_lp $MOD_LIVEPATCH2
 50unload_lp $MOD_LIVEPATCH
 51disable_lp $MOD_LIVEPATCH2
 52unload_lp $MOD_LIVEPATCH2
 53
 54check_result "% insmod test_modules/$MOD_LIVEPATCH.ko
 55livepatch: enabling patch '$MOD_LIVEPATCH'
 56livepatch: '$MOD_LIVEPATCH': initializing patching transition
 57$MOD_LIVEPATCH: pre_patch_callback: vmlinux
 58$MOD_LIVEPATCH: allocate_loglevel_state: allocating space to store console_loglevel
 59livepatch: '$MOD_LIVEPATCH': starting patching transition
 60livepatch: '$MOD_LIVEPATCH': completing patching transition
 61$MOD_LIVEPATCH: post_patch_callback: vmlinux
 62$MOD_LIVEPATCH: fix_console_loglevel: fixing console_loglevel
 63livepatch: '$MOD_LIVEPATCH': patching complete
 64% insmod test_modules/$MOD_LIVEPATCH2.ko
 65livepatch: enabling patch '$MOD_LIVEPATCH2'
 66livepatch: '$MOD_LIVEPATCH2': initializing patching transition
 67$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
 68$MOD_LIVEPATCH2: allocate_loglevel_state: space to store console_loglevel already allocated
 69livepatch: '$MOD_LIVEPATCH2': starting patching transition
 70livepatch: '$MOD_LIVEPATCH2': completing patching transition
 71$MOD_LIVEPATCH2: post_patch_callback: vmlinux
 72$MOD_LIVEPATCH2: fix_console_loglevel: taking over the console_loglevel change
 73livepatch: '$MOD_LIVEPATCH2': patching complete
 74% rmmod $MOD_LIVEPATCH
 75% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled
 76livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
 77$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
 78$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel
 79livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
 80livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
 81$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
 82$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel
 83livepatch: '$MOD_LIVEPATCH2': unpatching complete
 84% rmmod $MOD_LIVEPATCH2"
 85
 86
 87# Take over system state change by a cumulative patch
 88
 89start_test "compatible cumulative livepatches"
 90
 91load_lp $MOD_LIVEPATCH2
 92load_lp $MOD_LIVEPATCH3
 93unload_lp $MOD_LIVEPATCH2
 94load_lp $MOD_LIVEPATCH2
 95disable_lp $MOD_LIVEPATCH2
 96unload_lp $MOD_LIVEPATCH2
 97unload_lp $MOD_LIVEPATCH3
 98
 99check_result "% insmod test_modules/$MOD_LIVEPATCH2.ko
100livepatch: enabling patch '$MOD_LIVEPATCH2'
101livepatch: '$MOD_LIVEPATCH2': initializing patching transition
102$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
103$MOD_LIVEPATCH2: allocate_loglevel_state: allocating space to store console_loglevel
104livepatch: '$MOD_LIVEPATCH2': starting patching transition
105livepatch: '$MOD_LIVEPATCH2': completing patching transition
106$MOD_LIVEPATCH2: post_patch_callback: vmlinux
107$MOD_LIVEPATCH2: fix_console_loglevel: fixing console_loglevel
108livepatch: '$MOD_LIVEPATCH2': patching complete
109% insmod test_modules/$MOD_LIVEPATCH3.ko
110livepatch: enabling patch '$MOD_LIVEPATCH3'
111livepatch: '$MOD_LIVEPATCH3': initializing patching transition
112$MOD_LIVEPATCH3: pre_patch_callback: vmlinux
113$MOD_LIVEPATCH3: allocate_loglevel_state: space to store console_loglevel already allocated
114livepatch: '$MOD_LIVEPATCH3': starting patching transition
115livepatch: '$MOD_LIVEPATCH3': completing patching transition
116$MOD_LIVEPATCH3: post_patch_callback: vmlinux
117$MOD_LIVEPATCH3: fix_console_loglevel: taking over the console_loglevel change
118livepatch: '$MOD_LIVEPATCH3': patching complete
119% rmmod $MOD_LIVEPATCH2
120% insmod test_modules/$MOD_LIVEPATCH2.ko
121livepatch: enabling patch '$MOD_LIVEPATCH2'
122livepatch: '$MOD_LIVEPATCH2': initializing patching transition
123$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
124$MOD_LIVEPATCH2: allocate_loglevel_state: space to store console_loglevel already allocated
125livepatch: '$MOD_LIVEPATCH2': starting patching transition
126livepatch: '$MOD_LIVEPATCH2': completing patching transition
127$MOD_LIVEPATCH2: post_patch_callback: vmlinux
128$MOD_LIVEPATCH2: fix_console_loglevel: taking over the console_loglevel change
129livepatch: '$MOD_LIVEPATCH2': patching complete
130% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled
131livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
132$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
133$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel
134livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
135livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
136$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
137$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel
138livepatch: '$MOD_LIVEPATCH2': unpatching complete
139% rmmod $MOD_LIVEPATCH2
140% rmmod $MOD_LIVEPATCH3"
141
142
143# Failure caused by incompatible cumulative livepatches
144
145start_test "incompatible cumulative livepatches"
146
147load_lp $MOD_LIVEPATCH2
148load_failing_mod $MOD_LIVEPATCH
149disable_lp $MOD_LIVEPATCH2
150unload_lp $MOD_LIVEPATCH2
151
152check_result "% insmod test_modules/$MOD_LIVEPATCH2.ko
153livepatch: enabling patch '$MOD_LIVEPATCH2'
154livepatch: '$MOD_LIVEPATCH2': initializing patching transition
155$MOD_LIVEPATCH2: pre_patch_callback: vmlinux
156$MOD_LIVEPATCH2: allocate_loglevel_state: allocating space to store console_loglevel
157livepatch: '$MOD_LIVEPATCH2': starting patching transition
158livepatch: '$MOD_LIVEPATCH2': completing patching transition
159$MOD_LIVEPATCH2: post_patch_callback: vmlinux
160$MOD_LIVEPATCH2: fix_console_loglevel: fixing console_loglevel
161livepatch: '$MOD_LIVEPATCH2': patching complete
162% insmod test_modules/$MOD_LIVEPATCH.ko
163livepatch: Livepatch patch ($MOD_LIVEPATCH) is not compatible with the already installed livepatches.
164insmod: ERROR: could not insert module test_modules/$MOD_LIVEPATCH.ko: Invalid parameters
165% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled
166livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition
167$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux
168$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel
169livepatch: '$MOD_LIVEPATCH2': starting unpatching transition
170livepatch: '$MOD_LIVEPATCH2': completing unpatching transition
171$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux
172$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel
173livepatch: '$MOD_LIVEPATCH2': unpatching complete
174% rmmod $MOD_LIVEPATCH2"
175
176exit 0