Commit 52350a45 authored by Masami Hiramatsu (Google)'s avatar Masami Hiramatsu (Google) Committed by sanglipeng
Browse files

selftests: tracing: Fix to unmount tracefs for recovering environment

stable inclusion
from stable-v5.10.197
commit f990052376841f966290ecf5080427fc252e2d88
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I96Q8P

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f990052376841f966290ecf5080427fc252e2d88



--------------------------------

[ Upstream commit 7e021da8 ]

Fix to unmount the tracefs if the ftracetest mounted it for recovering
system environment. If the tracefs is already mounted, this does nothing.

Suggested-by: default avatarMark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/all/29fce076-746c-4650-8358-b4e0fa215cf7@sirena.org.uk/


Fixes: cbd965bd ("ftrace/selftests: Return the skip code when tracing directory not configured in kernel")
Signed-off-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
Reviewed-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
Reviewed-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarsanglipeng <sanglipeng1@jd.com>
parent 92ac2137
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -30,6 +30,9 @@ err_ret=1
# kselftest skip code is 4
err_skip=4

# umount required
UMOUNT_DIR=""

# cgroup RT scheduling prevents chrt commands from succeeding, which
# induces failures in test wakeup tests.  Disable for the duration of
# the tests.
@@ -44,6 +47,9 @@ setup() {

cleanup() {
  echo $sched_rt_runtime_orig > $sched_rt_runtime
  if [ -n "${UMOUNT_DIR}" ]; then
    umount ${UMOUNT_DIR} ||:
  fi
}

errexit() { # message
@@ -155,11 +161,13 @@ if [ -z "$TRACING_DIR" ]; then
	    mount -t tracefs nodev /sys/kernel/tracing ||
	      errexit "Failed to mount /sys/kernel/tracing"
	    TRACING_DIR="/sys/kernel/tracing"
	    UMOUNT_DIR=${TRACING_DIR}
	# If debugfs exists, then so does /sys/kernel/debug
	elif [ -d "/sys/kernel/debug" ]; then
	    mount -t debugfs nodev /sys/kernel/debug ||
	      errexit "Failed to mount /sys/kernel/debug"
	    TRACING_DIR="/sys/kernel/debug/tracing"
	    UMOUNT_DIR=${TRACING_DIR}
	else
	    err_ret=$err_skip
	    errexit "debugfs and tracefs are not configured in this kernel"