diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sched_rt.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 07d9b3307907..552310798dad 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
| @@ -440,9 +440,6 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq) | |||
| 440 | { | 440 | { |
| 441 | u64 runtime = sched_rt_runtime(rt_rq); | 441 | u64 runtime = sched_rt_runtime(rt_rq); |
| 442 | 442 | ||
| 443 | if (runtime == RUNTIME_INF) | ||
| 444 | return 0; | ||
| 445 | |||
| 446 | if (rt_rq->rt_throttled) | 443 | if (rt_rq->rt_throttled) |
| 447 | return rt_rq_throttled(rt_rq); | 444 | return rt_rq_throttled(rt_rq); |
| 448 | 445 | ||
| @@ -493,9 +490,11 @@ static void update_curr_rt(struct rq *rq) | |||
| 493 | rt_rq = rt_rq_of_se(rt_se); | 490 | rt_rq = rt_rq_of_se(rt_se); |
| 494 | 491 | ||
| 495 | spin_lock(&rt_rq->rt_runtime_lock); | 492 | spin_lock(&rt_rq->rt_runtime_lock); |
| 496 | rt_rq->rt_time += delta_exec; | 493 | if (sched_rt_runtime(rt_rq) != RUNTIME_INF) { |
| 497 | if (sched_rt_runtime_exceeded(rt_rq)) | 494 | rt_rq->rt_time += delta_exec; |
| 498 | resched_task(curr); | 495 | if (sched_rt_runtime_exceeded(rt_rq)) |
| 496 | resched_task(curr); | ||
| 497 | } | ||
| 499 | spin_unlock(&rt_rq->rt_runtime_lock); | 498 | spin_unlock(&rt_rq->rt_runtime_lock); |
| 500 | } | 499 | } |
| 501 | } | 500 | } |
