At present, we can hit the BUG_ON in __spu_update_sched_info by reading the regs file of a context between two calls to spu_run. The spu_release_saved called by spufs_regs_read() is resulting in the (now non-runnable) context being placed back on the run queue, so the next call to spu_run ends up in the bug condition. This change uses the SPU_SCHED_SPU_RUN flag to only reschedule a context if it's still in spu_run(). Signed-off-by: Jeremy Kerr <jk@ozlabs.org> |
||
---|---|---|
.. | ||
backing_ops.c | ||
context.c | ||
coredump.c | ||
fault.c | ||
file.c | ||
gang.c | ||
hw_ops.c | ||
inode.c | ||
lscsa_alloc.c | ||
Makefile | ||
run.c | ||
sched.c | ||
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 | ||
sputrace.c | ||
switch.c | ||
syscalls.c |