diff options
| -rw-r--r-- | kernel/trace/ftrace.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 7dcf6e9f2b04..9a236ffe2aa4 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
| @@ -1737,9 +1737,12 @@ static void clear_ftrace_pid(struct pid *pid) | |||
| 1737 | { | 1737 | { |
| 1738 | struct task_struct *p; | 1738 | struct task_struct *p; |
| 1739 | 1739 | ||
| 1740 | rcu_read_lock(); | ||
| 1740 | do_each_pid_task(pid, PIDTYPE_PID, p) { | 1741 | do_each_pid_task(pid, PIDTYPE_PID, p) { |
| 1741 | clear_tsk_trace_trace(p); | 1742 | clear_tsk_trace_trace(p); |
| 1742 | } while_each_pid_task(pid, PIDTYPE_PID, p); | 1743 | } while_each_pid_task(pid, PIDTYPE_PID, p); |
| 1744 | rcu_read_unlock(); | ||
| 1745 | |||
| 1743 | put_pid(pid); | 1746 | put_pid(pid); |
| 1744 | } | 1747 | } |
| 1745 | 1748 | ||
| @@ -1747,9 +1750,11 @@ static void set_ftrace_pid(struct pid *pid) | |||
| 1747 | { | 1750 | { |
| 1748 | struct task_struct *p; | 1751 | struct task_struct *p; |
| 1749 | 1752 | ||
| 1753 | rcu_read_lock(); | ||
| 1750 | do_each_pid_task(pid, PIDTYPE_PID, p) { | 1754 | do_each_pid_task(pid, PIDTYPE_PID, p) { |
| 1751 | set_tsk_trace_trace(p); | 1755 | set_tsk_trace_trace(p); |
| 1752 | } while_each_pid_task(pid, PIDTYPE_PID, p); | 1756 | } while_each_pid_task(pid, PIDTYPE_PID, p); |
| 1757 | rcu_read_unlock(); | ||
| 1753 | } | 1758 | } |
| 1754 | 1759 | ||
| 1755 | static void clear_ftrace_pid_task(struct pid **pid) | 1760 | static void clear_ftrace_pid_task(struct pid **pid) |
