Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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