android_kernel_xiaomi_sm8350/arch/powerpc/platforms/cell/spufs
Jeremy Kerr d58831375d [POWERPC] spufs: fix context destruction during psmap fault
We have a small window where a spu context may be destroyed while
we're servicing a page fault (from another thread) to the context's
problem state mapping.

After we up_read() the mmap_sem, it's possible that the context is
destroyed by its owning thread, and so the later references to ctx
are invalid. This can maifest as a deadlock on the (now free()-ed)
context state mutex.

This change adds a reference to the context before we release the
mmap_sem, so that the context cannot be destroyed.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
2008-02-27 18:47:53 +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 Merge branch 'linux-2.6' 2008-01-24 10:07:21 +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
Makefile [POWERPC] spufs: Add marker-based tracing facility 2008-02-06 16:26:59 +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_crt0.S
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
spu_save_dump.h_shipped
spu_save.c
spu_utils.h
spufs.h [POWERPC] spufs: Fix state_mutex leaks 2008-02-08 19:52:35 +11:00
sputrace.c Linux Kernel Markers: support multiple probes 2008-02-13 16:21:20 -08:00
switch.c [POWERPC] cell: fix spurious false return from spu_trap_data_{map,seg} 2008-02-20 14:57:36 +11:00
syscalls.c Introduce path_put() 2008-02-14 21:13:33 -08:00