From patchwork Wed Dec 10 19:40:41 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [18/18] powerpc/spufs: Hold list_mutex while performing a context unbind Date: Wed, 10 Dec 2008 09:40:41 -0000 From: Andre Detsch X-Patchwork-Id: 13308 Message-Id: <200812101740.42017.adetsch@br.ibm.com> To: cbe-oss-dev@ozlabs.org Also, add a related BUG_ON. Signed-off-by: Andre Detsch --- arch/powerpc/platforms/cell/spufs/sched.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index 3163239..ce110ad 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c @@ -566,8 +566,8 @@ static void spu_unschedule(struct spu_gang *gang) BUG_ON(spu->gang != gang); BUG_ON(spu->alloc_state != SPU_USED); node = spu->node; - spu_unbind_context(spu, ctx); mutex_lock(&cbe_spu_info[node].list_mutex); + spu_unbind_context(spu, ctx); cbe_spu_info[node].nr_active--; spu->alloc_state = SPU_FREE; spu->ctx = NULL; @@ -1289,6 +1289,7 @@ static int spusched_thread(void *unused) gang = spu->gang; BUG_ON(!gang); ctx = spu->ctx; + BUG_ON(!ctx); get_spu_context(ctx); mutex_unlock(mtx); preempted += spusched_tick(gang, ctx,