linux/arch/powerpc/platforms/cell/spufs
Arnd Bergmann fae9ca7915 [POWERPC] spufs: synchronize IRQ when disabling
There is a small race between the context save procedure
and the SPU interrupt handling, where we expect all interrupt
processing to have finished after disabling them, while
an interrupt is still being processed on another CPU.

The obvious fix is to call synchronize_irq() after disabling
the interrupts at the start of the context save procedure
to make sure we never access the SPU any more during an
ongoing save or even after that.

Thanks to Benjamin Herrenschmidt for pointing this out.

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
2008-02-29 15:16:48 +11:00
..
Makefile [POWERPC] spufs: Add marker-based tracing facility 2008-02-06 16:26:59 +11:00
backing_ops.c [POWERPC] spufs: Update SPU_Status[CISHP] in backing runcntl write 2008-02-08 19:52:35 +11:00
context.c [POWERPC] spufs: fix invalid scheduling of forgotten contexts 2008-02-28 09:56:28 +11:00
coredump.c [POWERPC] spufs: make state_mutex interruptible 2007-12-21 19:46:21 +11:00
fault.c [POWERPC] spufs: Fix state_mutex leaks 2008-02-08 19:52:35 +11:00
file.c [POWERPC] spufs: fix context destruction during psmap fault 2008-02-27 18:47:53 +11:00
gang.c [CELL] cell: add placement computation for scheduling of affinity contexts 2007-07-20 21:42:17 +02:00
hw_ops.c [POWERPC] spufs: use #defines for SPU class [012] exception status 2007-12-21 19:46:20 +11:00
inode.c Embed a struct path into struct nameidata instead of nd->{dentry,mnt} 2008-02-14 21:13:33 -08:00
lscsa_alloc.c [POWERPC] spufs: move fault, lscsa_alloc and switch code to spufs module 2007-12-21 19:46:19 +11:00
run.c [POWERPC] spufs: fix scheduler starvation by idle contexts 2008-02-19 10:12:02 +11:00
sched.c [POWERPC] spufs: fix scheduler starvation by idle contexts 2008-02-19 10:12:02 +11:00
spu_restore.c [CELL] spufs: change decrementer restore timing 2007-07-20 21:42:03 +02:00
spu_restore_crt0.S [PATCH] spufs: add spu-side context switch code 2006-01-09 14:49:25 +11:00
spu_restore_dump.h_shipped [CELL] spufs: change decrementer restore timing 2007-07-20 21:42:03 +02:00
spu_save.c [POWERPC] spufs: fix building spufs/spu_save_dump.h 2007-07-03 15:24:44 +10:00
spu_save_crt0.S [PATCH] spufs: add spu-side context switch code 2006-01-09 14:49:25 +11:00
spu_save_dump.h_shipped [POWERPC] spufs: one more fix for 64k pages 2006-06-21 15:01:32 +10:00
spu_utils.h [PATCH] spufs: add spu-side context switch code 2006-01-09 14:49:25 +11:00
spufs.h [POWERPC] spufs: Fix state_mutex leaks 2008-02-08 19:52:35 +11:00
sputrace.c [POWERPC] spufs: fix order of sputrace thread IDs 2008-02-29 15:00:08 +11:00
switch.c [POWERPC] spufs: synchronize IRQ when disabling 2008-02-29 15:16:48 +11:00
syscalls.c Introduce path_put() 2008-02-14 21:13:33 -08:00