summaryrefslogtreecommitdiffstats
path: root/sched-fix-dequeued-race.patch
blob: 9a15e3ba5255a102873e203a7821997820f0987b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From cc8e003f3cd7e0a5c14fbaecd8efdfe88115e905 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:26 -0500
Subject: [PATCH] sched:-fix dequeued race

commit 8002ed49acefff365937de2a05f8392dfe044e0e in tip.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 kernel/sched.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/kernel/sched.c b/kernel/sched.c
index a39592e..ff58409 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -3662,7 +3662,8 @@ void scheduler_tick(void)
 	raw_spin_lock(&rq->lock);
 	update_rq_clock(rq);
 	update_cpu_load(rq);
-	curr->sched_class->task_tick(rq, curr, 0);
+	if (curr != rq->idle && curr->se.on_rq)
+		curr->sched_class->task_tick(rq, curr, 0);
 	raw_spin_unlock(&rq->lock);
 
 	perf_event_task_tick(curr);
-- 
1.7.0.4