diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-08-05 11:43:16 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-08-05 11:43:16 -0700 |
| commit | 9e9671cea72e0652a8a0d03b7c96a8a798470c43 (patch) | |
| tree | e64b3879e9d36bfd417efbb5b3c800a0d1ad9082 /tools/testing/selftests/livepatch/functions.sh | |
| parent | e21a712a9685488f5ce80495b37b9fdbe96c230d (diff) | |
| parent | fbb01c52471c8fb4ec2422c0ab26c134bd90bbff (diff) | |
| download | linux-next-9e9671cea72e0652a8a0d03b7c96a8a798470c43.tar.gz linux-next-9e9671cea72e0652a8a0d03b7c96a8a798470c43.zip | |
Merge tag 'linux-kselftest-5.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
Pull kselftest fixes from Shuah Khan:
"A fix to the Kselftest framework to save and restore errno and a fix
to livepatch to push and pop dynamic debug config"
* tag 'linux-kselftest-5.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
selftests/livepatch: push and pop dynamic debug config
kselftest: save-and-restore errno to allow for %m formatting
Diffstat (limited to 'tools/testing/selftests/livepatch/functions.sh')
| -rw-r--r-- | tools/testing/selftests/livepatch/functions.sh | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/tools/testing/selftests/livepatch/functions.sh b/tools/testing/selftests/livepatch/functions.sh index edcfeace4655..79b0affd21fb 100644 --- a/tools/testing/selftests/livepatch/functions.sh +++ b/tools/testing/selftests/livepatch/functions.sh @@ -29,13 +29,27 @@ function die() { exit 1 } -# set_dynamic_debug() - setup kernel dynamic debug -# TODO - push and pop this config? +function push_dynamic_debug() { + DYNAMIC_DEBUG=$(grep '^kernel/livepatch' /sys/kernel/debug/dynamic_debug/control | \ + awk -F'[: ]' '{print "file " $1 " line " $2 " " $4}') +} + +function pop_dynamic_debug() { + if [[ -n "$DYNAMIC_DEBUG" ]]; then + echo -n "$DYNAMIC_DEBUG" > /sys/kernel/debug/dynamic_debug/control + fi +} + +# set_dynamic_debug() - save the current dynamic debug config and tweak +# it for the self-tests. Set a script exit trap +# that restores the original config. function set_dynamic_debug() { - cat << EOF > /sys/kernel/debug/dynamic_debug/control -file kernel/livepatch/* +p -func klp_try_switch_task -p -EOF + push_dynamic_debug + trap pop_dynamic_debug EXIT INT TERM HUP + cat <<-EOF > /sys/kernel/debug/dynamic_debug/control + file kernel/livepatch/* +p + func klp_try_switch_task -p + EOF } # loop_until(cmd) - loop a command until it is successful or $MAX_RETRIES, |
