---
util-linux/chrt.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/util-linux/chrt.c b/util-linux/chrt.c
index bbd6e2deb..5c5513aeb 100644
--- a/util-linux/chrt.c
+++ b/util-linux/chrt.c
@@ -78,6 +78,8 @@ int chrt_main(int argc UNUSED_PARAM, char **argv)
char *priority = priority; /* for compiler */
const char *current_new;
int policy = SCHED_RR;
+ int priority_min;
+ int priority_max;
/* only one policy accepted */
opt = getopt32(argv, "^+" "mprfobi" "\0"
"r--fobi:f--robi:o--rfbi:b--rfoi:i--rfob");
@@ -146,8 +148,16 @@ int chrt_main(int argc UNUSED_PARAM, char **argv)
priority 0.
[...] SCHED_FIFO or SCHED_RR can have static priority in 1..99 range.
*/
- sp.sched_priority = xstrtou_range(priority, 0,
- (policy != SCHED_OTHER && policy != SCHED_BATCH &&
policy != SCHED_IDLE) ? 1 : 0, 99);
+ if (policy == SCHED_OTHER || policy == SCHED_BATCH
+ || policy == SCHED_IDLE
+ ) {
+ priority_min = 0;
+ priority_max = 0;
+ } else {
+ priority_min = 1;
+ priority_max = 99;
+ }
+ sp.sched_priority = xstrtou_range(priority, 0, priority_min,
priority_max);
if (sched_setscheduler(pid, policy, &sp) < 0)
bb_perror_msg_and_die("can't %cet pid %d's policy", 's',
(int)pid);
--
2.14.1
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox