diff --git a/fs/proc/array.c b/fs/proc/array.c
index 07d6c4853fe858da49c51d8c199a8a3ff635602a..b07a71002f2f4280e27c58dba1dce5dae1c0047f 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -425,7 +425,6 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
 	cutime = cstime = utime = stime = cputime_zero;
 	cgtime = gtime = cputime_zero;
 
-	rcu_read_lock();
 	if (lock_task_sighand(task, &flags)) {
 		struct signal_struct *sig = task->signal;
 
@@ -469,7 +468,6 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
 
 		unlock_task_sighand(task, &flags);
 	}
-	rcu_read_unlock();
 
 	if (!whole || num_threads < 2)
 		wchan = get_wchan(task);