[PATCH] rq->curr==p not equivalent to task_running(rq,p)

Joe Korty
2004-01-13T23:03:08Z

task_running(rq,p) is equivalent to (rq->curr == p) only for some
architectures. Boot tested on i386.

Regards,
Joe

diff -Nua 2.6/kernel/sched.c.0 2.6/kernel/sched.c
--- 2.6/kernel/sched.c.0 2004-01-13 17:53:34.000000000 -0500
+++ 2.6/kernel/sched.c 2004-01-13 17:47:33.000000000 -0500
@@ -2062,7 +2062,7 @@
* our priority decreased, or if we are not currently running on
* this runqueue and our priority is higher than the current's
*/
- if (rq->curr == p) {
+ if (task_running(rq, p)) {
if (p->prio > oldprio)
resched_task(rq->curr);
} else if (p->prio < rq->curr->prio)