diff options
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/sched.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index 68fcdc4515ab..3b831e07f1ed 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c | |||
@@ -430,9 +430,11 @@ void spu_deactivate(struct spu_context *ctx) | |||
430 | */ | 430 | */ |
431 | void spu_yield(struct spu_context *ctx) | 431 | void spu_yield(struct spu_context *ctx) |
432 | { | 432 | { |
433 | mutex_lock(&ctx->state_mutex); | 433 | if (!(ctx->flags & SPU_CREATE_NOSCHED)) { |
434 | __spu_deactivate(ctx, 0, MAX_PRIO); | 434 | mutex_lock(&ctx->state_mutex); |
435 | mutex_unlock(&ctx->state_mutex); | 435 | __spu_deactivate(ctx, 0, MAX_PRIO); |
436 | mutex_unlock(&ctx->state_mutex); | ||
437 | } | ||
436 | } | 438 | } |
437 | 439 | ||
438 | void spu_sched_tick(struct work_struct *work) | 440 | void spu_sched_tick(struct work_struct *work) |