Subject: use cancel_rearming_delayed_workqueue when stopping spu contexts From: Christoph Hellwig In current 2.6 kernels we need to use cancel_rearming_delayed_workqueue to stop self-rearming delayed workqueues. This patch fixes issues with OOPSes in run_timer_softirq due to not properly cancelling items on thee spusched workqueue. Signed-off-by: Christoph Hellwig Signed-off-by: Arnd Bergmann Index: linux-2.6/arch/powerpc/platforms/cell/spufs/sched.c =================================================================== --- linux-2.6.orig/arch/powerpc/platforms/cell/spufs/sched.c +++ linux-2.6/arch/powerpc/platforms/cell/spufs/sched.c @@ -78,7 +78,7 @@ void spu_start_tick(struct spu_context * void spu_stop_tick(struct spu_context *ctx) { if (ctx->policy == SCHED_RR) - cancel_delayed_work(&ctx->sched_work); + cancel_rearming_delayed_workqueue(spu_sched_wq, &ctx->sched_work); } void spu_sched_tick(struct work_struct *work)