From: Jeremy Kerr Date: Wed, 23 Apr 2008 04:24:27 +0000 (+1000) Subject: [POWERPC] spufs: update master runcntl with context lock held X-Git-Tag: v2.6.26-rc2~16^2~16 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=c0bace5c7029ef7cbb6e6ffaa0469a3c042e5029;p=linux-2.6-omap-h63xx.git [POWERPC] spufs: update master runcntl with context lock held Currently, we update the SPU master run control bit (ie, spu_enable_spu) in spufs_run_spu before we grab the context mutex. This can result in races with other processes accessing this context's resources. This change moves the spu_enable_spu to after we have acquired the context lock. Signed-off-by: Jeremy Kerr --- diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c index a9c35b7b719..0634fecfe54 100644 --- a/arch/powerpc/platforms/cell/spufs/run.c +++ b/arch/powerpc/platforms/cell/spufs/run.c @@ -343,13 +343,14 @@ long spufs_run_spu(struct spu_context *ctx, u32 *npc, u32 *event) if (mutex_lock_interruptible(&ctx->run_mutex)) return -ERESTARTSYS; - spu_enable_spu(ctx); ctx->event_return = 0; ret = spu_acquire(ctx); if (ret) goto out_unlock; + spu_enable_spu(ctx); + spu_update_sched_info(ctx); ret = spu_run_init(ctx, npc);