android_kernel_xiaomi_sm8350/arch/powerpc/platforms/cell/spufs
Andre Detsch 18789fb1c3 [POWERPC] spufs: DMA Restart after SIGSEGV
This fixes the behavior of spufs when a spu tries a DMA operation
based on a wrong / unavailable address.

Instead of just generating a SIGBUS signal, spufs now
generates a SIGSEGV signal and restarts the problematic DMA operation
after the execution of the application's signal handler.  This allows
applications to employ user-level paging systems.

Although the restart_dma function is called before the application's
signal handler, the operation is not actually performed at this time,
since the spu context is already stopped.  The operation only takes
place when spu_run is restarted (which happens automatically).

Signed-off-by: Andre Detsch <adetsch@br.ibm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-12-21 19:46:21 +11:00
..
backing_ops.c [POWERPC] spufs: DMA Restart after SIGSEGV 2007-12-21 19:46:21 +11:00
context.c [POWERPC] spufs: make state_mutex interruptible 2007-12-21 19:46:21 +11:00
coredump.c [POWERPC] spufs: make state_mutex interruptible 2007-12-21 19:46:21 +11:00
fault.c [POWERPC] spufs: DMA Restart after SIGSEGV 2007-12-21 19:46:21 +11:00
file.c [POWERPC] spufs: make state_mutex interruptible 2007-12-21 19:46:21 +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 [POWERPC] spufs: Fix context destroy vs /spu readdir race 2007-11-20 16:10:20 +11:00
lscsa_alloc.c [POWERPC] spufs: move fault, lscsa_alloc and switch code to spufs module 2007-12-21 19:46:19 +11:00
Makefile [POWERPC] spufs: move fault, lscsa_alloc and switch code to spufs module 2007-12-21 19:46:19 +11:00
run.c [POWERPC] spufs: make state_mutex interruptible 2007-12-21 19:46:21 +11:00
sched.c [POWERPC] spufs: Use separate timer for /proc/spu_loadavg calculation 2007-12-21 19:46:21 +11: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_restore.c [CELL] spufs: change decrementer restore timing 2007-07-20 21:42:03 +02: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_save.c [POWERPC] spufs: fix building spufs/spu_save_dump.h 2007-07-03 15:24:44 +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: make state_mutex interruptible 2007-12-21 19:46:21 +11:00
switch.c [POWERPC] spufs: don't set reserved bits in spu interrupt status 2007-12-21 19:46:20 +11:00
syscalls.c [POWERPC] spufs: Combine spufs_coredump_calls with spufs_calls 2007-09-19 15:12:19 +10:00