From: Joe Korty <joe.korty@ccur.com>
The following fixes a problem where a SCHED_FIFO task would on occasion be
moved to the end of its runqueue when returned to from a preemption. Cause
was due to some SCHED_OTHER code in schedule() which was being run for tasks
of every policy.
queue = array->queue + idx;
next = list_entry(queue->next, task_t, run_list);
- if (next->activated > 0) {
+ if (!rt_task(next) && next->activated > 0) {
unsigned long long delta = now - next->timestamp;
if (next->activated == 1)