diff options
author | Christoph Hellwig <hch@lst.de> | 2007-04-23 15:08:14 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@klappe.arndb.de> | 2007-04-23 15:18:55 -0400 |
commit | 62c05d583ec016c40011462d5f03b072bfbd3dc7 (patch) | |
tree | 2ac005d75bf415cb038aebaf3a9547a09ffc9d21 /arch/powerpc/platforms/cell | |
parent | 4e0f4ed0df71013290cd2a01f7b84264f7b99678 (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')
-rw-r--r-- | arch/powerpc/platforms/cell/spu_base.c | 3 |
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 | } |
440 | EXPORT_SYMBOL_GPL(spu_alloc_node); | 441 | EXPORT_SYMBOL_GPL(spu_alloc_node); |