diff options
author | Andre Detsch <adetsch@br.ibm.com> | 2007-08-21 02:06:22 (GMT) |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-08-30 06:27:18 (GMT) |
commit | ada83daab31c3ec35845785482124373a62f430c (patch) | |
tree | 3efd34d60cc2f38ecb6b80bf8861c8eb544cf8ef /arch/powerpc/platforms/cell/spufs/run.c | |
parent | 62ee68e3bcb0d056aae5b36dea0388ca25572cdf (diff) | |
download | linux-fsl-qoriq-ada83daab31c3ec35845785482124373a62f430c.tar.xz |
[POWERPC] spufs: Don't call spu_run_init from spu_reacquire_runnable
This fixes a major bug which was happening when a SPU thread advances
its execution right after being restored to a SPU. A potentially
outdated NPC value was being (re)written to the SPU.
So, spu_run_init, in this case, was either not doing anything relevant,
or breaking the execution of the SPU thread.
This fixes a common problem of losing a mailbox write when it was done
to a saved context.
Signed-off-by: Andre Detsch <adetsch@br.ibm.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/cell/spufs/run.c')
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/run.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c index 6abdd8f..958f10e 100644 --- a/arch/powerpc/platforms/cell/spufs/run.c +++ b/arch/powerpc/platforms/cell/spufs/run.c @@ -193,11 +193,7 @@ static int spu_reacquire_runnable(struct spu_context *ctx, u32 *npc, if (ret) return ret; - ret = spu_run_init(ctx, npc); - if (ret) { - spu_release(ctx); - return ret; - } + spuctx_switch_state(ctx, SPU_UTIL_USER); return 0; } |