diff options
-rw-r--r-- | kernel/sched.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 00097dea89..7268034c88 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -4536,10 +4536,11 @@ long sched_setaffinity(pid_t pid, cpumask_t new_mask) | |||
4536 | read_lock(&tasklist_lock); | 4536 | read_lock(&tasklist_lock); |
4537 | 4537 | ||
4538 | p = find_process_by_pid(pid); | 4538 | p = find_process_by_pid(pid); |
4539 | if (!p) { | 4539 | if (!p || is_realtime(p)) { |
4540 | /* LITMUS tasks don't get to do this, transition to BE first */ | ||
4540 | read_unlock(&tasklist_lock); | 4541 | read_unlock(&tasklist_lock); |
4541 | mutex_unlock(&sched_hotcpu_mutex); | 4542 | mutex_unlock(&sched_hotcpu_mutex); |
4542 | return -ESRCH; | 4543 | return p ? -EPERM : -ESRCH; |
4543 | } | 4544 | } |
4544 | 4545 | ||
4545 | /* | 4546 | /* |