powerpc/spufs: fix missed stop-and-signal event
[pandora-kernel.git] / arch / powerpc / platforms / cell / spufs / sched.c
index cd72567..e929e70 100644 (file)
@@ -407,6 +407,8 @@ static int has_affinity(struct spu_context *ctx)
  */
 static void spu_unbind_context(struct spu *spu, struct spu_context *ctx)
 {
+       u32 status;
+
        spu_context_trace(spu_unbind_context__enter, ctx, spu);
 
        spuctx_switch_state(ctx, SPU_UTIL_SYSTEM);
@@ -452,6 +454,9 @@ static void spu_unbind_context(struct spu *spu, struct spu_context *ctx)
        /* This maps the underlying spu state to idle */
        spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED);
        ctx->spu = NULL;
+
+       if (spu_stopped(ctx, &status))
+               wake_up_all(&ctx->stop_wq);
 }
 
 /**