aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/cpu
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-08-06 18:39:32 +0900
committerPaul Mundt <lethal@linux-sh.org>2008-09-08 10:35:03 +0900
commit71f0bdcab69ab36b1e939d36063aaf6c4a164ed3 (patch)
tree5d213c8bb4fc18b419ed297053e9be060fb7b58c /arch/sh/kernel/cpu
parentsh: generic clockevent broadcast support. (diff)
downloadlinux-dev-71f0bdcab69ab36b1e939d36063aaf6c4a164ed3.tar.xz
linux-dev-71f0bdcab69ab36b1e939d36063aaf6c4a164ed3.zip
sh: smp: shove a cpu_relax() in the plat_start_cpu() busy loop.
Without this, certain versions of GCC will happily optimize the entire loop out. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/cpu')
-rw-r--r--arch/sh/kernel/cpu/sh4a/smp-shx3.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/smp-shx3.c b/arch/sh/kernel/cpu/sh4a/smp-shx3.c
index edb4da037e0c..b8869aa20dec 100644
--- a/arch/sh/kernel/cpu/sh4a/smp-shx3.c
+++ b/arch/sh/kernel/cpu/sh4a/smp-shx3.c
@@ -82,7 +82,7 @@ void plat_start_cpu(unsigned int cpu, unsigned long entry_point)
ctrl_outl(STBCR_MSTP, STBCR_REG(cpu));
while (!(ctrl_inl(STBCR_REG(cpu)) & STBCR_MSTP))
- ;
+ cpu_relax();
/* Start up secondary processor by sending a reset */
ctrl_outl(STBCR_AP_VAL, STBCR_REG(cpu));