diff options
-rw-r--r-- | kernel/sched_rt.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index f365e66b3d49..3d4020a9ba1b 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
@@ -136,6 +136,11 @@ static void dequeue_pushable_task(struct rq *rq, struct task_struct *p) | |||
136 | plist_del(&p->pushable_tasks, &rq->rt.pushable_tasks); | 136 | plist_del(&p->pushable_tasks, &rq->rt.pushable_tasks); |
137 | } | 137 | } |
138 | 138 | ||
139 | static inline int has_pushable_tasks(struct rq *rq) | ||
140 | { | ||
141 | return !plist_head_empty(&rq->rt.pushable_tasks); | ||
142 | } | ||
143 | |||
139 | #else | 144 | #else |
140 | 145 | ||
141 | static inline void enqueue_pushable_task(struct rq *rq, struct task_struct *p) | 146 | static inline void enqueue_pushable_task(struct rq *rq, struct task_struct *p) |
@@ -1064,11 +1069,6 @@ static struct task_struct *_pick_next_task_rt(struct rq *rq) | |||
1064 | return p; | 1069 | return p; |
1065 | } | 1070 | } |
1066 | 1071 | ||
1067 | static inline int has_pushable_tasks(struct rq *rq) | ||
1068 | { | ||
1069 | return !plist_head_empty(&rq->rt.pushable_tasks); | ||
1070 | } | ||
1071 | |||
1072 | static struct task_struct *pick_next_task_rt(struct rq *rq) | 1072 | static struct task_struct *pick_next_task_rt(struct rq *rq) |
1073 | { | 1073 | { |
1074 | struct task_struct *p = _pick_next_task_rt(rq); | 1074 | struct task_struct *p = _pick_next_task_rt(rq); |
@@ -1077,11 +1077,13 @@ static struct task_struct *pick_next_task_rt(struct rq *rq) | |||
1077 | if (p) | 1077 | if (p) |
1078 | dequeue_pushable_task(rq, p); | 1078 | dequeue_pushable_task(rq, p); |
1079 | 1079 | ||
1080 | #ifdef CONFIG_SMP | ||
1080 | /* | 1081 | /* |
1081 | * We detect this state here so that we can avoid taking the RQ | 1082 | * We detect this state here so that we can avoid taking the RQ |
1082 | * lock again later if there is no need to push | 1083 | * lock again later if there is no need to push |
1083 | */ | 1084 | */ |
1084 | rq->post_schedule = has_pushable_tasks(rq); | 1085 | rq->post_schedule = has_pushable_tasks(rq); |
1086 | #endif | ||
1085 | 1087 | ||
1086 | return p; | 1088 | return p; |
1087 | } | 1089 | } |