summaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-common/smp.c
diff options
context:
space:
mode:
authorsteven miao <realmz6@gmail.com>2010-09-07 12:08:36 +0200
committerMike Frysinger <vapier@gentoo.org>2011-03-18 09:01:02 +0100
commitab61d2ac5c9d7c9232b8455c8d889216ca9d4814 (patch)
tree5b8f23ea2b8a6fdb87fa8b5249fb72a600b3a51e /arch/blackfin/mach-common/smp.c
parentBlackfin: SMP: use standard cache functions (diff)
downloadlinux-ab61d2ac5c9d7c9232b8455c8d889216ca9d4814.tar.xz
linux-ab61d2ac5c9d7c9232b8455c8d889216ca9d4814.zip
Blackfin: SMP: delay enabling caches until CPU is initialized
Defer bfin_setup_caches(cpu) to avoid unexpected faults due to the cpu state not yet being fully initialized. Signed-off-by: steven miao <realmz6@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mach-common/smp.c')
-rw-r--r--arch/blackfin/mach-common/smp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c
index d3f597a92053..40e6cbc363f5 100644
--- a/arch/blackfin/mach-common/smp.c
+++ b/arch/blackfin/mach-common/smp.c
@@ -361,8 +361,6 @@ void __cpuinit secondary_start_kernel(void)
*/
init_exception_vectors();
- bfin_setup_caches(cpu);
-
local_irq_disable();
/* Attach the new idle task to the global mm. */
@@ -381,6 +379,8 @@ void __cpuinit secondary_start_kernel(void)
local_irq_enable();
+ bfin_setup_caches(cpu);
+
/*
* Calibrate loops per jiffy value.
* IRQs need to be enabled here - D-cache can be invalidated