diff --git a/fs/proc/base.c b/fs/proc/base.c
index 0697fd089de892e6f8eb5c456f01211cc81ebfe9..ab1b439923e6c622d1627486e9dae80aa0ae9cd5 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -314,7 +314,9 @@ static int proc_oom_score(struct task_struct *task, char *buffer)
 	struct timespec uptime;
 
 	do_posix_clock_monotonic_gettime(&uptime);
+	read_lock(&tasklist_lock);
 	points = badness(task, uptime.tv_sec);
+	read_unlock(&tasklist_lock);
 	return sprintf(buffer, "%lu\n", points);
 }