linux/arch/powerpc/platforms/cell
Arnd Bergmann 57dace2391 [POWERPC] spufs: make spu page faults not block scheduling
Until now, we have always entered the spu page fault handler
with a mutex for the spu context held. This has multiple
bad side-effects:
- it becomes impossible to suspend the context during
  page faults
- if an spu program attempts to access its own mmio
  areas through DMA, we get an immediate livelock when
  the nopage function tries to acquire the same mutex

This patch makes the page fault logic operate on a
struct spu_context instead of a struct spu, and moves it
from spu_base.c to a new file fault.c inside of spufs.

We now also need to copy the dar and dsisr contents
of the last fault into the saved context to have it
accessible in case we schedule out the context before
activating the page fault handler.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
2007-04-23 21:18:55 +02:00
..
spufs [POWERPC] spufs: make spu page faults not block scheduling 2007-04-23 21:18:55 +02:00
cbe_cpufreq.c [POWERPC] Rename get_property to of_get_property: the last one 2007-04-13 03:55:19 +10:00
cbe_regs.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
cbe_regs.h [POWERPC] cell: Add routines for managing PMU interrupts 2006-12-04 20:40:12 +11:00
cbe_thermal.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
interrupt.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
interrupt.h [POWERPC] cell: Add routines for managing PMU interrupts 2006-12-04 20:40:12 +11:00
io-workarounds.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
iommu.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
Kconfig [POWERPC] CBE thermal support on PS3 2007-04-13 03:55:15 +10:00
Makefile [POWERPC] Celleb: consolidate spu management ops 2007-02-07 14:03:21 +11:00
pervasive.c [POWERPC] cell: hard disable interrupts in power_save() 2006-12-04 20:40:21 +11:00
pervasive.h [POWERPC] cell: add RAS support 2006-06-21 15:01:29 +10:00
pmu.c [POWERPC] cell: PPU Oprofile cleanup patch 2007-02-13 22:03:06 +01:00
ras.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
ras.h [POWERPC] cell: add RAS support 2006-06-21 15:01:29 +10:00
setup.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
smp.c [POWERPC] Cleanup CPU inits 2006-08-25 13:27:35 +10:00
spider-pic.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
spu_base.c [POWERPC] spufs: make spu page faults not block scheduling 2007-04-23 21:18:55 +02:00
spu_callbacks.c [POWERPC] Unify ppc syscall tables 2006-06-21 15:01:32 +10:00
spu_coredump.c [POWERPC] coredump: Add SPU elf notes to coredump. 2006-12-04 20:40:19 +11:00
spu_manage.c [POWERPC] Rename get_property to of_get_property: arch/powerpc 2007-04-13 03:55:19 +10:00
spu_priv1_mmio.c [POWERPC] Celleb: consolidate spu management ops 2007-02-07 14:03:21 +11:00
spu_priv1_mmio.h [POWERPC] cell: abstract spu management routines 2006-12-04 20:40:39 +11:00
spu_syscalls.c [PATCH] spufs: fix module refcount race 2006-01-09 14:53:11 +11:00