brintos

brintos / linux-shallow public Read only

0
0
Text · 7.5 KiB · 10a52ac Raw
177 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03# Copyright (C) 2019 SUSE4 5. $(dirname $0)/functions.sh6 7MOD_LIVEPATCH=test_klp_state8MOD_LIVEPATCH2=test_klp_state29MOD_LIVEPATCH3=test_klp_state310 11setup_config12 13 14# Load and remove a module that modifies the system state15 16start_test "system state modification"17 18load_lp $MOD_LIVEPATCH19disable_lp $MOD_LIVEPATCH20unload_lp $MOD_LIVEPATCH21 22check_result "% insmod test_modules/$MOD_LIVEPATCH.ko23livepatch: enabling patch '$MOD_LIVEPATCH'24livepatch: '$MOD_LIVEPATCH': initializing patching transition25$MOD_LIVEPATCH: pre_patch_callback: vmlinux26$MOD_LIVEPATCH: allocate_loglevel_state: allocating space to store console_loglevel27livepatch: '$MOD_LIVEPATCH': starting patching transition28livepatch: '$MOD_LIVEPATCH': completing patching transition29$MOD_LIVEPATCH: post_patch_callback: vmlinux30$MOD_LIVEPATCH: fix_console_loglevel: fixing console_loglevel31livepatch: '$MOD_LIVEPATCH': patching complete32% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled33livepatch: '$MOD_LIVEPATCH': initializing unpatching transition34$MOD_LIVEPATCH: pre_unpatch_callback: vmlinux35$MOD_LIVEPATCH: restore_console_loglevel: restoring console_loglevel36livepatch: '$MOD_LIVEPATCH': starting unpatching transition37livepatch: '$MOD_LIVEPATCH': completing unpatching transition38$MOD_LIVEPATCH: post_unpatch_callback: vmlinux39$MOD_LIVEPATCH: free_loglevel_state: freeing space for the stored console_loglevel40livepatch: '$MOD_LIVEPATCH': unpatching complete41% rmmod $MOD_LIVEPATCH"42 43 44# Take over system state change by a cumulative patch45 46start_test "taking over system state modification"47 48load_lp $MOD_LIVEPATCH49load_lp $MOD_LIVEPATCH250unload_lp $MOD_LIVEPATCH51disable_lp $MOD_LIVEPATCH252unload_lp $MOD_LIVEPATCH253 54check_result "% insmod test_modules/$MOD_LIVEPATCH.ko55livepatch: enabling patch '$MOD_LIVEPATCH'56livepatch: '$MOD_LIVEPATCH': initializing patching transition57$MOD_LIVEPATCH: pre_patch_callback: vmlinux58$MOD_LIVEPATCH: allocate_loglevel_state: allocating space to store console_loglevel59livepatch: '$MOD_LIVEPATCH': starting patching transition60livepatch: '$MOD_LIVEPATCH': completing patching transition61$MOD_LIVEPATCH: post_patch_callback: vmlinux62$MOD_LIVEPATCH: fix_console_loglevel: fixing console_loglevel63livepatch: '$MOD_LIVEPATCH': patching complete64% insmod test_modules/$MOD_LIVEPATCH2.ko65livepatch: enabling patch '$MOD_LIVEPATCH2'66livepatch: '$MOD_LIVEPATCH2': initializing patching transition67$MOD_LIVEPATCH2: pre_patch_callback: vmlinux68$MOD_LIVEPATCH2: allocate_loglevel_state: space to store console_loglevel already allocated69livepatch: '$MOD_LIVEPATCH2': starting patching transition70livepatch: '$MOD_LIVEPATCH2': completing patching transition71$MOD_LIVEPATCH2: post_patch_callback: vmlinux72$MOD_LIVEPATCH2: fix_console_loglevel: taking over the console_loglevel change73livepatch: '$MOD_LIVEPATCH2': patching complete74% rmmod $MOD_LIVEPATCH75% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled76livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition77$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux78$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel79livepatch: '$MOD_LIVEPATCH2': starting unpatching transition80livepatch: '$MOD_LIVEPATCH2': completing unpatching transition81$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux82$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel83livepatch: '$MOD_LIVEPATCH2': unpatching complete84% rmmod $MOD_LIVEPATCH2"85 86 87# Take over system state change by a cumulative patch88 89start_test "compatible cumulative livepatches"90 91load_lp $MOD_LIVEPATCH292load_lp $MOD_LIVEPATCH393unload_lp $MOD_LIVEPATCH294load_lp $MOD_LIVEPATCH295disable_lp $MOD_LIVEPATCH296unload_lp $MOD_LIVEPATCH297unload_lp $MOD_LIVEPATCH398 99check_result "% insmod test_modules/$MOD_LIVEPATCH2.ko100livepatch: enabling patch '$MOD_LIVEPATCH2'101livepatch: '$MOD_LIVEPATCH2': initializing patching transition102$MOD_LIVEPATCH2: pre_patch_callback: vmlinux103$MOD_LIVEPATCH2: allocate_loglevel_state: allocating space to store console_loglevel104livepatch: '$MOD_LIVEPATCH2': starting patching transition105livepatch: '$MOD_LIVEPATCH2': completing patching transition106$MOD_LIVEPATCH2: post_patch_callback: vmlinux107$MOD_LIVEPATCH2: fix_console_loglevel: fixing console_loglevel108livepatch: '$MOD_LIVEPATCH2': patching complete109% insmod test_modules/$MOD_LIVEPATCH3.ko110livepatch: enabling patch '$MOD_LIVEPATCH3'111livepatch: '$MOD_LIVEPATCH3': initializing patching transition112$MOD_LIVEPATCH3: pre_patch_callback: vmlinux113$MOD_LIVEPATCH3: allocate_loglevel_state: space to store console_loglevel already allocated114livepatch: '$MOD_LIVEPATCH3': starting patching transition115livepatch: '$MOD_LIVEPATCH3': completing patching transition116$MOD_LIVEPATCH3: post_patch_callback: vmlinux117$MOD_LIVEPATCH3: fix_console_loglevel: taking over the console_loglevel change118livepatch: '$MOD_LIVEPATCH3': patching complete119% rmmod $MOD_LIVEPATCH2120% insmod test_modules/$MOD_LIVEPATCH2.ko121livepatch: enabling patch '$MOD_LIVEPATCH2'122livepatch: '$MOD_LIVEPATCH2': initializing patching transition123$MOD_LIVEPATCH2: pre_patch_callback: vmlinux124$MOD_LIVEPATCH2: allocate_loglevel_state: space to store console_loglevel already allocated125livepatch: '$MOD_LIVEPATCH2': starting patching transition126livepatch: '$MOD_LIVEPATCH2': completing patching transition127$MOD_LIVEPATCH2: post_patch_callback: vmlinux128$MOD_LIVEPATCH2: fix_console_loglevel: taking over the console_loglevel change129livepatch: '$MOD_LIVEPATCH2': patching complete130% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled131livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition132$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux133$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel134livepatch: '$MOD_LIVEPATCH2': starting unpatching transition135livepatch: '$MOD_LIVEPATCH2': completing unpatching transition136$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux137$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel138livepatch: '$MOD_LIVEPATCH2': unpatching complete139% rmmod $MOD_LIVEPATCH2140% rmmod $MOD_LIVEPATCH3"141 142 143# Failure caused by incompatible cumulative livepatches144 145start_test "incompatible cumulative livepatches"146 147load_lp $MOD_LIVEPATCH2148load_failing_mod $MOD_LIVEPATCH149disable_lp $MOD_LIVEPATCH2150unload_lp $MOD_LIVEPATCH2151 152check_result "% insmod test_modules/$MOD_LIVEPATCH2.ko153livepatch: enabling patch '$MOD_LIVEPATCH2'154livepatch: '$MOD_LIVEPATCH2': initializing patching transition155$MOD_LIVEPATCH2: pre_patch_callback: vmlinux156$MOD_LIVEPATCH2: allocate_loglevel_state: allocating space to store console_loglevel157livepatch: '$MOD_LIVEPATCH2': starting patching transition158livepatch: '$MOD_LIVEPATCH2': completing patching transition159$MOD_LIVEPATCH2: post_patch_callback: vmlinux160$MOD_LIVEPATCH2: fix_console_loglevel: fixing console_loglevel161livepatch: '$MOD_LIVEPATCH2': patching complete162% insmod test_modules/$MOD_LIVEPATCH.ko163livepatch: Livepatch patch ($MOD_LIVEPATCH) is not compatible with the already installed livepatches.164insmod: ERROR: could not insert module test_modules/$MOD_LIVEPATCH.ko: Invalid parameters165% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH2/enabled166livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition167$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux168$MOD_LIVEPATCH2: restore_console_loglevel: restoring console_loglevel169livepatch: '$MOD_LIVEPATCH2': starting unpatching transition170livepatch: '$MOD_LIVEPATCH2': completing unpatching transition171$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux172$MOD_LIVEPATCH2: free_loglevel_state: freeing space for the stored console_loglevel173livepatch: '$MOD_LIVEPATCH2': unpatching complete174% rmmod $MOD_LIVEPATCH2"175 176exit 0177