aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/cell/spu_base.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2007-04-23 15:08:14 -0400
committerArnd Bergmann <arnd@klappe.arndb.de>2007-04-23 15:18:55 -0400
commit62c05d583ec016c40011462d5f03b072bfbd3dc7 (patch)
tree2ac005d75bf415cb038aebaf3a9547a09ffc9d21 /arch/powerpc/platforms/cell/spu_base.c
parent4e0f4ed0df71013290cd2a01f7b84264f7b99678 (diff)
[POWERPC] spu_base: move spu_init_channels out of spu_mutex
There is no reason to execute spu_init_channels under spu_mutex after the spu has been taken off the freelist it's ours. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Diffstat (limited to 'arch/powerpc/platforms/cell/spu_base.c')
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index eba7a2641dce..6242f3c19f68 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -431,10 +431,11 @@ struct spu *spu_alloc_node(int node)
431 spu = list_entry(spu_list[node].next, struct spu, list); 431 spu = list_entry(spu_list[node].next, struct spu, list);
432 list_del_init(&spu->list); 432 list_del_init(&spu->list);
433 pr_debug("Got SPU %d %d\n", spu->number, spu->node); 433 pr_debug("Got SPU %d %d\n", spu->number, spu->node);
434 spu_init_channels(spu);
435 } 434 }
436 mutex_unlock(&spu_mutex); 435 mutex_unlock(&spu_mutex);
437 436
437 if (spu)
438 spu_init_channels(spu);
438 return spu; 439 return spu;
439} 440}
440EXPORT_SYMBOL_GPL(spu_alloc_node); 441EXPORT_SYMBOL_GPL(spu_alloc_node);