1
linux/arch/powerpc/platforms/cell/spufs
Jeremy Kerr c443acab2e [POWERPC] spufs: Fix context destroy vs /spu readdir race
We can currently cause an oops by repeatedly creating and destroying
contexts, while doing getdents() calls on the "/spu" directory.

This is due to the context's top-level dentry remaining hashed while
the context is being destroyed.

Fix this by unhashing the context's dentry with the
dentry->d_inode->i_mutex held. This way, we'll hit the check for
d_unhashed in dentry_readdir, and won't be included in the
list of subdirs for /spu.

test: spufs-testsuite:tests/01-spu_create/07-destroy-vs-readdir-race

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-11-20 16:10:20 +11:00
..
backing_ops.c [POWERPC] spufs: Fix update of mailbox status register during backed wbox write 2007-08-30 16:27:18 +10:00
context.c [POWERPC] spusched: Fix initial timeslice calculation 2007-07-26 16:17:56 +10:00
coredump.c [POWERPC] spufs: Respect RLIMIT_CORE in spu coredump code 2007-09-19 15:12:19 +10:00
fault.c [CELL] spufs: add spu stats in sysfs and ctx stat file in spufs 2007-07-20 21:41:50 +02:00
file.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
gang.c [CELL] cell: add placement computation for scheduling of affinity contexts 2007-07-20 21:42:17 +02:00
hw_ops.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07: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 support for 64K LS mappings on 4K kernels 2007-05-09 16:35:00 +10:00
Makefile [POWERPC] Spufs support for 64K LS mappings on 4K kernels 2007-05-09 16:35:00 +10:00
run.c [POWERPC] spufs: Make file-internal functions & variables static 2007-09-19 15:12:16 +10:00
sched.c Merge branch 'linux-2.6' 2007-09-20 10:09:27 +10: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 [POWERPC] spufs: fix building spufs/spu_save_dump.h 2007-07-03 15:24:44 +10:00
spu_utils.h
spufs.h [POWERPC] spufs: Handle errors in SPU coredump code, and support coredump to a pipe 2007-09-19 15:12:19 +10:00
switch.c [POWERPC] Use 1TB segments 2007-10-12 14:05:17 +10:00
syscalls.c [POWERPC] spufs: Combine spufs_coredump_calls with spufs_calls 2007-09-19 15:12:19 +10:00