Hi Srivatsa, > [ ... ] > -- > > current task is not present in its runqueue in case of sched_fair class > tasks. Take care of this fact in rt_mutex_setprio(), > sched_setscheduler() and sched_move_task() routines. > > Signed-off-by : Srivatsa Vaddagiri <[EMAIL PROTECTED]> > > > --- > kernel/sched.c | 45 +++++++++++++++++++++++++-------------------- > 1 files changed, 25 insertions(+), 20 deletions(-) > > Index: current/kernel/sched.c > =================================================================== > --- current.orig/kernel/sched.c > +++ current/kernel/sched.c > @@ -3986,11 +3986,13 @@ void rt_mutex_setprio(struct task_struct > oldprio = p->prio; > on_rq = p->se.on_rq; > running = task_running(rq, p); > - if (on_rq) { > + if (on_rq) > dequeue_task(rq, p, 0); > - if (running) > - p->sched_class->put_prev_task(rq, p); > - } > + /* current task is not kept in its runqueue in case of sched_fair > class. > + * Hence we need the 'on_rq?' and 'running?' tests to be separate.
Humm... the 'current' is not kept within the tree but current->se.on_rq is supposed to be '1' , so the old code looks ok to me (at least for the 'leaf' elements). Maybe you were able to get more useful oops on your site? > -- > Regards, > vatsa > -- Best regards, Dmitry Adamushko - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/