original_kernel/arch/powerpc/platforms/cell
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
..
spufs [POWERPC] spufs: Fix context destroy vs /spu readdir race 2007-11-20 16:10:20 +11:00
Kconfig
Makefile
axon_msi.c Remove msic_dcr_read() in axon_msi.c 2007-10-15 14:29:49 -04:00
cbe_cpufreq.c Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
cbe_cpufreq.h
cbe_cpufreq_pervasive.c
cbe_cpufreq_pmi.c
cbe_regs.c
cbe_thermal.c
interrupt.c [POWERPC] Fix CONFIG_SMP=n build break 2007-11-08 14:15:30 +11:00
interrupt.h
io-workarounds.c
iommu.c
pervasive.c
pervasive.h
pmu.c
ras.c
ras.h
setup.c
smp.c [POWERPC] Include udbg.h when using udbg_printf 2007-11-08 14:15:31 +11:00
spider-pic.c
spu_base.c
spu_callbacks.c
spu_manage.c
spu_priv1_mmio.c
spu_priv1_mmio.h
spu_syscalls.c