summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-10-14 09:14:30 +0400
committerPaul Mundt <lethal@linux-sh.org>2009-10-14 10:44:12 +0400
commita66c2edea56c291a6f6a52f07496ebb97c0880e8 (patch)
tree8019cfb6ebcfbc676a6c08fba83a460f63edea61
parent2908df9e2ce85e4de19ba81ac619acdf93a8bfaa (diff)
downloadlinux-a66c2edea56c291a6f6a52f07496ebb97c0880e8.tar.xz
sh: Populate initial secondary CPU info from boot_cpu_data.
The secondary CPU info was seeing corrupted results due to not entering all of the setup paths taken by the boot CPU. So we just memcpy() the boot cpu data over directly, and then fix up the per-CPU bits. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--arch/sh/kernel/smp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
index 442d8d47a41e..160db1003cfb 100644
--- a/arch/sh/kernel/smp.c
+++ b/arch/sh/kernel/smp.c
@@ -35,6 +35,8 @@ static inline void __init smp_store_cpu_info(unsigned int cpu)
{
struct sh_cpuinfo *c = cpu_data + cpu;
+ memcpy(c, &boot_cpu_data, sizeof(struct sh_cpuinfo));
+
c->loops_per_jiffy = loops_per_jiffy;
}