diff options
| -rw-r--r-- | kernel/sched.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 5b13e4b0e009..b8ee864c7481 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
| @@ -7726,9 +7726,7 @@ static unsigned long to_ratio(u64 period, u64 runtime) | |||
| 7726 | if (runtime == RUNTIME_INF) | 7726 | if (runtime == RUNTIME_INF) |
| 7727 | return 1ULL << 16; | 7727 | return 1ULL << 16; |
| 7728 | 7728 | ||
| 7729 | runtime *= (1ULL << 16); | 7729 | return div64_64(runtime << 16, period); |
| 7730 | div64_64(runtime, period); | ||
| 7731 | return runtime; | ||
| 7732 | } | 7730 | } |
| 7733 | 7731 | ||
| 7734 | static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime) | 7732 | static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime) |
| @@ -7757,18 +7755,16 @@ int sched_group_set_rt_runtime(struct task_group *tg, long rt_runtime_us) | |||
| 7757 | u64 rt_runtime, rt_period; | 7755 | u64 rt_runtime, rt_period; |
| 7758 | int err = 0; | 7756 | int err = 0; |
| 7759 | 7757 | ||
| 7760 | rt_period = sysctl_sched_rt_period * NSEC_PER_USEC; | 7758 | rt_period = (u64)sysctl_sched_rt_period * NSEC_PER_USEC; |
| 7761 | rt_runtime = (u64)rt_runtime_us * NSEC_PER_USEC; | 7759 | rt_runtime = (u64)rt_runtime_us * NSEC_PER_USEC; |
| 7762 | if (rt_runtime_us == -1) | 7760 | if (rt_runtime_us == -1) |
| 7763 | rt_runtime = rt_period; | 7761 | rt_runtime = RUNTIME_INF; |
| 7764 | 7762 | ||
| 7765 | mutex_lock(&rt_constraints_mutex); | 7763 | mutex_lock(&rt_constraints_mutex); |
| 7766 | if (!__rt_schedulable(tg, rt_period, rt_runtime)) { | 7764 | if (!__rt_schedulable(tg, rt_period, rt_runtime)) { |
| 7767 | err = -EINVAL; | 7765 | err = -EINVAL; |
| 7768 | goto unlock; | 7766 | goto unlock; |
| 7769 | } | 7767 | } |
| 7770 | if (rt_runtime_us == -1) | ||
| 7771 | rt_runtime = RUNTIME_INF; | ||
| 7772 | tg->rt_runtime = rt_runtime; | 7768 | tg->rt_runtime = rt_runtime; |
| 7773 | unlock: | 7769 | unlock: |
| 7774 | mutex_unlock(&rt_constraints_mutex); | 7770 | mutex_unlock(&rt_constraints_mutex); |
