Parcourir la source

[POWERPC] spufs: Don't yield nosched context

Nosched context sould never be scheduled out, thus we must not
deactivate them in spu_yield ever.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Christoph Hellwig il y a 18 ans
Parent
commit
e5c0b9ec53
1 fichiers modifiés avec 5 ajouts et 3 suppressions
  1. 5 3
      arch/powerpc/platforms/cell/spufs/sched.c

+ 5 - 3
arch/powerpc/platforms/cell/spufs/sched.c

@@ -430,9 +430,11 @@ void spu_deactivate(struct spu_context *ctx)
  */
 void spu_yield(struct spu_context *ctx)
 {
-	mutex_lock(&ctx->state_mutex);
-	__spu_deactivate(ctx, 0, MAX_PRIO);
-	mutex_unlock(&ctx->state_mutex);
+	if (!(ctx->flags & SPU_CREATE_NOSCHED)) {
+		mutex_lock(&ctx->state_mutex);
+		__spu_deactivate(ctx, 0, MAX_PRIO);
+		mutex_unlock(&ctx->state_mutex);
+	}
 }
 
 void spu_sched_tick(struct work_struct *work)