aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/ftrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/ftrace.c')
-rw-r--r--kernel/trace/ftrace.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 7e9a20b69939..68610031780b 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1729,9 +1729,12 @@ static void clear_ftrace_pid(struct pid *pid)
1729{ 1729{
1730 struct task_struct *p; 1730 struct task_struct *p;
1731 1731
1732 rcu_read_lock();
1732 do_each_pid_task(pid, PIDTYPE_PID, p) { 1733 do_each_pid_task(pid, PIDTYPE_PID, p) {
1733 clear_tsk_trace_trace(p); 1734 clear_tsk_trace_trace(p);
1734 } while_each_pid_task(pid, PIDTYPE_PID, p); 1735 } while_each_pid_task(pid, PIDTYPE_PID, p);
1736 rcu_read_unlock();
1737
1735 put_pid(pid); 1738 put_pid(pid);
1736} 1739}
1737 1740
@@ -1739,9 +1742,11 @@ static void set_ftrace_pid(struct pid *pid)
1739{ 1742{
1740 struct task_struct *p; 1743 struct task_struct *p;
1741 1744
1745 rcu_read_lock();
1742 do_each_pid_task(pid, PIDTYPE_PID, p) { 1746 do_each_pid_task(pid, PIDTYPE_PID, p) {
1743 set_tsk_trace_trace(p); 1747 set_tsk_trace_trace(p);
1744 } while_each_pid_task(pid, PIDTYPE_PID, p); 1748 } while_each_pid_task(pid, PIDTYPE_PID, p);
1749 rcu_read_unlock();
1745} 1750}
1746 1751
1747static void clear_ftrace_pid_task(struct pid **pid) 1752static void clear_ftrace_pid_task(struct pid **pid)