Dunno if this is a missmerge but # fgrep cbe_spu_info arch/powerpc/platforms/cell/ -R | grep -i ini cell/spufs/sched.c: mutex_init(&cbe_spu_info[i].list_mutex); cell/spufs/sched.c: INIT_LIST_HEAD(&cbe_spu_info[i].spus); cell/spu_base.c: mutex_init(&cbe_spu_info[i].list_mutex); cell/spu_base.c: INIT_LIST_HEAD(&cbe_spu_info[i].spus); the result is that no SPU context can be started because no SPE is available and never will be. I guess this should be only be initialized in spu_base since it probes for SPEs and is run before spufs. Cc: Geoff Levand Cc: Christoph Hellwig Cc: Arnd Bergmann Signed-off-by: Sebastian Siewior --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c @@ -927,10 +927,6 @@ int __init spu_sched_init(void) INIT_LIST_HEAD(&spu_prio->runq[i]); __clear_bit(i, spu_prio->bitmap); } - for (i = 0; i < MAX_NUMNODES; i++) { - mutex_init(&cbe_spu_info[i].list_mutex); - INIT_LIST_HEAD(&cbe_spu_info[i].spus); - } spin_lock_init(&spu_prio->runq_lock); setup_timer(&spusched_timer, spusched_wake, 0); --