return 1;
} else if (streq(name, "CPUSchedulingPriority")) {
- int32_t p, min, max;
+ int32_t p;
r = sd_bus_message_read(message, "i", &p);
if (r < 0)
return r;
- min = sched_get_priority_min(c->cpu_sched_policy);
- max = sched_get_priority_max(c->cpu_sched_policy);
- if (p < min || p > max)
+ /* On Linux RR/FIFO range from 1 to 99 and OTHER/BATCH may only be 0. Policy might be set
+ * later so we do not check the precise range, but only the generic outer bounds. */
+ if (p < 0 || p > 99)
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid CPU scheduling priority: %i", p);
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
void *userdata) {
ExecContext *c = ASSERT_PTR(data);
- int i, min, max, r;
+ int i, r;
assert(filename);
assert(lvalue);
return 0;
}
- /* On Linux RR/FIFO range from 1 to 99 and OTHER/BATCH may only be 0 */
- min = sched_get_priority_min(c->cpu_sched_policy);
- max = sched_get_priority_max(c->cpu_sched_policy);
-
- if (i < min || i > max) {
+ /* On Linux RR/FIFO range from 1 to 99 and OTHER/BATCH may only be 0. Policy might be set later so
+ * we do not check the precise range, but only the generic outer bounds. */
+ if (i < 0 || i > 99) {
log_syntax(unit, LOG_WARNING, filename, line, 0, "CPU scheduling priority is out of range, ignoring: %s", rvalue);
return 0;
}