]> git.baikalelectronics.ru Git - kernel.git/commit
[POWERPC] spufs scheduler: Fix wakeup races
authorChristoph Hellwig <hch@lst.de>
Mon, 4 Jun 2007 13:26:51 +0000 (23:26 +1000)
committerPaul Mackerras <paulus@samba.org>
Thu, 7 Jun 2007 01:44:39 +0000 (11:44 +1000)
commit3dfb4b13bef636b824a5fe0f30915e82391840e2
tree7de8b9a16f8a78fb99ac10e1f8d64664b5472aa3
parentdec9f93e8c8e796c80a5ddfe2af90fe3cc040ca2
[POWERPC] spufs scheduler: Fix wakeup races

Fix the race between checking for contexts on the runqueue and actually
waking them in spu_deactive and spu_yield.

The guts of spu_reschedule are split into a new helper called
grab_runnable_context which shows if there is a runnable thread below
a specified priority and if yes removes if from the runqueue and uses
it.  This function is used by the new __spu_deactivate hepler shared
by preemption and spu_yield to grab a new context before deactivating
a specified priority and if yes removes if from the runqueue and uses
it.  This function is used by the new __spu_deactivate hepler shared
by preemption and spu_yield to grab a new context before deactivating
the old one.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/spufs/sched.c