diff options
author | Yi Li <yi.li@analog.com> | 2009-12-30 07:04:07 +0300 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-03-09 08:30:48 +0300 |
commit | 54536c5c6a807d0db7252c3b33638b88f34650ff (patch) | |
tree | b176e6c63c78a3c46086a0510ce461f6f4440ad3 | |
parent | 0b39db28b953945232719e7ff6fb802aa8a2be5f (diff) | |
download | linux-54536c5c6a807d0db7252c3b33638b88f34650ff.tar.xz |
Blackfin: simplify SMP handling in SRAM code
There is no need to use {get,put}_cpu() when we already have a spinlock to
protect against multiple processors running simultaneously.
Signed-off-by: Yi Li <yi.li@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r-- | arch/blackfin/mm/sram-alloc.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/arch/blackfin/mm/sram-alloc.c b/arch/blackfin/mm/sram-alloc.c index f068c11ea98f..5732da25ee2d 100644 --- a/arch/blackfin/mm/sram-alloc.c +++ b/arch/blackfin/mm/sram-alloc.c @@ -402,7 +402,7 @@ void *l1_data_A_sram_alloc(size_t size) void *addr; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags); @@ -411,7 +411,6 @@ void *l1_data_A_sram_alloc(size_t size) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags); - put_cpu(); pr_debug("Allocated address in l1_data_A_sram_alloc is 0x%lx+0x%lx\n", (long unsigned int)addr, size); @@ -430,7 +429,7 @@ int l1_data_A_sram_free(const void *addr) int ret; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags); @@ -439,7 +438,6 @@ int l1_data_A_sram_free(const void *addr) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags); - put_cpu(); return ret; #else @@ -455,7 +453,7 @@ void *l1_data_B_sram_alloc(size_t size) void *addr; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags); @@ -464,7 +462,6 @@ void *l1_data_B_sram_alloc(size_t size) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags); - put_cpu(); pr_debug("Allocated address in l1_data_B_sram_alloc is 0x%lx+0x%lx\n", (long unsigned int)addr, size); @@ -483,7 +480,7 @@ int l1_data_B_sram_free(const void *addr) int ret; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags); @@ -492,7 +489,6 @@ int l1_data_B_sram_free(const void *addr) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags); - put_cpu(); return ret; #else @@ -540,7 +536,7 @@ void *l1_inst_sram_alloc(size_t size) void *addr; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1_inst_sram_lock, cpu), flags); @@ -549,7 +545,6 @@ void *l1_inst_sram_alloc(size_t size) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1_inst_sram_lock, cpu), flags); - put_cpu(); pr_debug("Allocated address in l1_inst_sram_alloc is 0x%lx+0x%lx\n", (long unsigned int)addr, size); @@ -568,7 +563,7 @@ int l1_inst_sram_free(const void *addr) int ret; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1_inst_sram_lock, cpu), flags); @@ -577,7 +572,6 @@ int l1_inst_sram_free(const void *addr) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1_inst_sram_lock, cpu), flags); - put_cpu(); return ret; #else @@ -593,7 +587,7 @@ void *l1sram_alloc(size_t size) void *addr; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags); @@ -602,7 +596,6 @@ void *l1sram_alloc(size_t size) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags); - put_cpu(); return addr; } @@ -614,7 +607,7 @@ void *l1sram_alloc_max(size_t *psize) void *addr; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags); @@ -623,7 +616,6 @@ void *l1sram_alloc_max(size_t *psize) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags); - put_cpu(); return addr; } @@ -635,7 +627,7 @@ int l1sram_free(const void *addr) int ret; unsigned int cpu; - cpu = get_cpu(); + cpu = smp_processor_id(); /* add mutex operation */ spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags); @@ -644,7 +636,6 @@ int l1sram_free(const void *addr) /* add mutex operation */ spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags); - put_cpu(); return ret; } |