[POWERPC] spufs: Fix missing stop-and-signal
authorMasato Noguchi <Masato.Noguchi@jp.sony.com>
Mon, 20 Nov 2006 17:45:04 +0000 (18:45 +0100)
committerPaul Mackerras <paulus@samba.org>
Mon, 4 Dec 2006 09:39:55 +0000 (20:39 +1100)
commit2ebb2477f9a61b436dd22b75189857df1a77e585
treed0f9fbfd2f63c83adcf71ab316096d25c5f50433
parent453d9f72a91d798c3e3c4b4bed26210926dfb57b
[POWERPC] spufs: Fix missing stop-and-signal

When there is pending signals, current spufs_run_spu() always returns
-ERESTARTSYS and it is called again automatically.
But, if spe already stopped by stop-and-signal or halt instruction,
returning -ERESTARTSYS makes stop-and-signal/halt lost and
spu run over the end-point.

For your convenience, I attached a sample code to restage this bug.
If there is no bug, printed NPC will be 0x4000.

Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/spufs/run.c