Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/livepatch: adopt to newer sysctl error format

With procfs v3.3.16, the sysctl command doesn't print the set key and
value on error. This change breaks livepatch selftest test-ftrace.sh,
that tests the interaction of sysctl ftrace_enabled:

Make it work with all sysctl versions using '-q' option.

Explicitly print the final status on success so that it can be verified
in the log. The error message is enough on failure.

Reported-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Reviewed-by: Joe Lawrence <joe.lawrence@redhat.com>
Acked-by: Miroslav Benes <mbenes@suse.cz>
Link: https://lore.kernel.org/r/20200714091030.1611-1-pmladek@suse.com

+3 -2
+2 -1
tools/testing/selftests/livepatch/functions.sh
··· 75 75 } 76 76 77 77 function set_ftrace_enabled() { 78 - result=$(sysctl kernel.ftrace_enabled="$1" 2>&1 | paste --serial --delimiters=' ') 78 + result=$(sysctl -q kernel.ftrace_enabled="$1" 2>&1 && \ 79 + sysctl kernel.ftrace_enabled 2>&1) 79 80 echo "livepatch: $result" > /dev/kmsg 80 81 } 81 82
+1 -1
tools/testing/selftests/livepatch/test-ftrace.sh
··· 51 51 livepatch: '$MOD_LIVEPATCH': starting patching transition 52 52 livepatch: '$MOD_LIVEPATCH': completing patching transition 53 53 livepatch: '$MOD_LIVEPATCH': patching complete 54 - livepatch: sysctl: setting key \"kernel.ftrace_enabled\": Device or resource busy kernel.ftrace_enabled = 0 54 + livepatch: sysctl: setting key \"kernel.ftrace_enabled\": Device or resource busy 55 55 % echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled 56 56 livepatch: '$MOD_LIVEPATCH': initializing unpatching transition 57 57 livepatch: '$MOD_LIVEPATCH': starting unpatching transition