android_kernel_xiaomi_sm8350/arch/powerpc/platforms/cell/spufs
Jeremy Kerr 0111a70186 [POWERPC] spufs: fix invalid scheduling of forgotten contexts
At present, we have a situation where a context with no owner is
re-scheduled by spu_forget:

	Thread 1: reading regs file	Thread 2: context owner

					spu_forget()
						- ctx->owner = NULL
						- set SPU_SCHED_WAS_ACTIVE

	spu_acquire_saved()
	- context is in saved state

	spu_release_saved()
	- SPU_SCHED_WAS_ACTIVE is set,
	  so spu_activate() the context,
	  which now has no owner

In spu_forget(), we shouldn't be requesting a re-schedule by setting
SPU_SCHED_WAS_ACTIVE. This change removes the set_bit in spu_forget(),
so that spu_release_saved() doesn't reinsert this destroyed context on
to the run queue.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
2008-02-28 09:56:28 +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 [POWERPC] spufs: fix invalid scheduling of forgotten contexts 2008-02-28 09:56:28 +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
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
spu_restore.c
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