diff options
Diffstat (limited to 'kernel/sched/rt.c')
| -rw-r--r-- | kernel/sched/rt.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 7d57275fc396..1c4065575fa2 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c | |||
| @@ -901,6 +901,13 @@ inc_rt_prio_smp(struct rt_rq *rt_rq, int prio, int prev_prio) | |||
| 901 | { | 901 | { |
| 902 | struct rq *rq = rq_of_rt_rq(rt_rq); | 902 | struct rq *rq = rq_of_rt_rq(rt_rq); |
| 903 | 903 | ||
| 904 | #ifdef CONFIG_RT_GROUP_SCHED | ||
| 905 | /* | ||
| 906 | * Change rq's cpupri only if rt_rq is the top queue. | ||
| 907 | */ | ||
| 908 | if (&rq->rt != rt_rq) | ||
| 909 | return; | ||
| 910 | #endif | ||
| 904 | if (rq->online && prio < prev_prio) | 911 | if (rq->online && prio < prev_prio) |
| 905 | cpupri_set(&rq->rd->cpupri, rq->cpu, prio); | 912 | cpupri_set(&rq->rd->cpupri, rq->cpu, prio); |
| 906 | } | 913 | } |
| @@ -910,6 +917,13 @@ dec_rt_prio_smp(struct rt_rq *rt_rq, int prio, int prev_prio) | |||
| 910 | { | 917 | { |
| 911 | struct rq *rq = rq_of_rt_rq(rt_rq); | 918 | struct rq *rq = rq_of_rt_rq(rt_rq); |
| 912 | 919 | ||
| 920 | #ifdef CONFIG_RT_GROUP_SCHED | ||
| 921 | /* | ||
| 922 | * Change rq's cpupri only if rt_rq is the top queue. | ||
| 923 | */ | ||
| 924 | if (&rq->rt != rt_rq) | ||
| 925 | return; | ||
| 926 | #endif | ||
| 913 | if (rq->online && rt_rq->highest_prio.curr != prev_prio) | 927 | if (rq->online && rt_rq->highest_prio.curr != prev_prio) |
| 914 | cpupri_set(&rq->rd->cpupri, rq->cpu, rt_rq->highest_prio.curr); | 928 | cpupri_set(&rq->rd->cpupri, rq->cpu, rt_rq->highest_prio.curr); |
| 915 | } | 929 | } |
