diff options
Diffstat (limited to 'kernel/sched_rt.c')
| -rw-r--r-- | kernel/sched_rt.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 908c04f9dad0..6163e4cf885b 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
| @@ -861,6 +861,8 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p) | |||
| 861 | #define RT_MAX_TRIES 3 | 861 | #define RT_MAX_TRIES 3 |
| 862 | 862 | ||
| 863 | static int double_lock_balance(struct rq *this_rq, struct rq *busiest); | 863 | static int double_lock_balance(struct rq *this_rq, struct rq *busiest); |
| 864 | static void double_unlock_balance(struct rq *this_rq, struct rq *busiest); | ||
| 865 | |||
| 864 | static void deactivate_task(struct rq *rq, struct task_struct *p, int sleep); | 866 | static void deactivate_task(struct rq *rq, struct task_struct *p, int sleep); |
| 865 | 867 | ||
| 866 | static int pick_rt_task(struct rq *rq, struct task_struct *p, int cpu) | 868 | static int pick_rt_task(struct rq *rq, struct task_struct *p, int cpu) |
| @@ -1022,7 +1024,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq) | |||
| 1022 | break; | 1024 | break; |
| 1023 | 1025 | ||
| 1024 | /* try again */ | 1026 | /* try again */ |
| 1025 | spin_unlock(&lowest_rq->lock); | 1027 | double_unlock_balance(rq, lowest_rq); |
| 1026 | lowest_rq = NULL; | 1028 | lowest_rq = NULL; |
| 1027 | } | 1029 | } |
| 1028 | 1030 | ||
| @@ -1091,7 +1093,7 @@ static int push_rt_task(struct rq *rq) | |||
| 1091 | 1093 | ||
| 1092 | resched_task(lowest_rq->curr); | 1094 | resched_task(lowest_rq->curr); |
| 1093 | 1095 | ||
| 1094 | spin_unlock(&lowest_rq->lock); | 1096 | double_unlock_balance(rq, lowest_rq); |
| 1095 | 1097 | ||
| 1096 | ret = 1; | 1098 | ret = 1; |
| 1097 | out: | 1099 | out: |
| @@ -1197,7 +1199,7 @@ static int pull_rt_task(struct rq *this_rq) | |||
| 1197 | 1199 | ||
| 1198 | } | 1200 | } |
| 1199 | skip: | 1201 | skip: |
| 1200 | spin_unlock(&src_rq->lock); | 1202 | double_unlock_balance(this_rq, src_rq); |
| 1201 | } | 1203 | } |
| 1202 | 1204 | ||
| 1203 | return ret; | 1205 | return ret; |
