[Cbe-oss-dev] PATCH [4/7] decouple spu scheduler from spufs_spu_run [asynchronous scheduling]

Christoph Hellwig hch at lst.de
Sat Nov 24 01:41:47 EST 2007


The dma test failures were caused by the removal of the signal_pending
check in spu_run_fini.  By putting it back the testsuite now passes
perfectly.


Signed-off-by: Christoph Hellwig <hch at lst.de>

Index: linux-2.6/arch/powerpc/platforms/cell/spufs/run.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/cell/spufs/run.c	2007-11-23 14:34:09.000000000 +0100
+++ linux-2.6/arch/powerpc/platforms/cell/spufs/run.c	2007-11-23 14:34:27.000000000 +0100
@@ -226,15 +226,15 @@
 static int spu_run_fini(struct spu_context *ctx, u32 *npc,
 			       u32 *status)
 {
-	int ret = 0;
-
 	*status = ctx->ops->status_read(ctx);
 	*npc = ctx->ops->npc_read(ctx);
 
 	spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED);
 	spu_release(ctx);
 
-	return ret;
+	if (signal_pending(current))
+		return -ERESTARTSYS;
+	return 0;
 }
 
 static int spu_reacquire_runnable(struct spu_context *ctx, u32 *npc,



More information about the cbe-oss-dev mailing list