0001
0002
0003
0004
0005 . $(dirname $0)/functions.sh
0006
0007 MOD_LIVEPATCH=test_klp_livepatch
0008
0009 setup_config
0010
0011
0012
0013
0014
0015
0016 start_test "livepatch interaction with ftrace_enabled sysctl"
0017
0018 set_ftrace_enabled 0
0019 load_failing_mod $MOD_LIVEPATCH
0020
0021 set_ftrace_enabled 1
0022 load_lp $MOD_LIVEPATCH
0023 if [[ "$(cat /proc/cmdline)" != "$MOD_LIVEPATCH: this has been live patched" ]] ; then
0024 echo -e "FAIL\n\n"
0025 die "livepatch kselftest(s) failed"
0026 fi
0027
0028
0029 set_ftrace_enabled --fail 0
0030 if [[ "$(cat /proc/cmdline)" != "$MOD_LIVEPATCH: this has been live patched" ]] ; then
0031 echo -e "FAIL\n\n"
0032 die "livepatch kselftest(s) failed"
0033 fi
0034 disable_lp $MOD_LIVEPATCH
0035 unload_lp $MOD_LIVEPATCH
0036
0037 check_result "livepatch: kernel.ftrace_enabled = 0
0038 % modprobe $MOD_LIVEPATCH
0039 livepatch: enabling patch '$MOD_LIVEPATCH'
0040 livepatch: '$MOD_LIVEPATCH': initializing patching transition
0041 livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
0042 livepatch: failed to patch object 'vmlinux'
0043 livepatch: failed to enable patch '$MOD_LIVEPATCH'
0044 livepatch: '$MOD_LIVEPATCH': canceling patching transition, going to unpatch
0045 livepatch: '$MOD_LIVEPATCH': completing unpatching transition
0046 livepatch: '$MOD_LIVEPATCH': unpatching complete
0047 modprobe: ERROR: could not insert '$MOD_LIVEPATCH': Device or resource busy
0048 livepatch: kernel.ftrace_enabled = 1
0049 % modprobe $MOD_LIVEPATCH
0050 livepatch: enabling patch '$MOD_LIVEPATCH'
0051 livepatch: '$MOD_LIVEPATCH': initializing patching transition
0052 livepatch: '$MOD_LIVEPATCH': starting patching transition
0053 livepatch: '$MOD_LIVEPATCH': completing patching transition
0054 livepatch: '$MOD_LIVEPATCH': patching complete
0055 livepatch: sysctl: setting key \"kernel.ftrace_enabled\": Device or resource busy
0056 % echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
0057 livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
0058 livepatch: '$MOD_LIVEPATCH': starting unpatching transition
0059 livepatch: '$MOD_LIVEPATCH': completing unpatching transition
0060 livepatch: '$MOD_LIVEPATCH': unpatching complete
0061 % rmmod $MOD_LIVEPATCH"
0062
0063
0064 exit 0