[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 <jk@ozlabs.org>
This commit is contained in:
Родитель
55d7cd74d4
Коммит
c0bace5c70
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче