diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-04-13 18:57:57 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-05-25 08:13:42 -0400 |
commit | 44491fbc5a228f3c2e61d842fd9fee0bfb839373 (patch) | |
tree | a8762ef074c96bb7e80050731dcab27684cbce84 /arch/blackfin | |
parent | 8d011f70b08f563b007743fd446a6022f0329cd4 (diff) |
Blackfin: SMP: fix cpudata cache setup
After some cache setup reordering changesets, the blackfin_cpudata init
was left behind. While cpu0's data was correct, cpu1's data was not.
Not that big of a deal as these are only used in the cpuinfo output, but
should still be fixed. So move the setup of these fields to the common
cache setup function to avoid this happening again in the future.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin')
-rw-r--r-- | arch/blackfin/kernel/setup.c | 4 | ||||
-rw-r--r-- | arch/blackfin/mach-bf561/smp.c | 3 |
2 files changed, 2 insertions, 5 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index 6b09f5cf6313..11eff2c3e980 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -105,6 +105,8 @@ void __cpuinit bfin_setup_caches(unsigned int cpu) | |||
105 | bfin_dcache_init(dcplb_tbl[cpu]); | 105 | bfin_dcache_init(dcplb_tbl[cpu]); |
106 | #endif | 106 | #endif |
107 | 107 | ||
108 | bfin_setup_cpudata(cpu); | ||
109 | |||
108 | /* | 110 | /* |
109 | * In cache coherence emulation mode, we need to have the | 111 | * In cache coherence emulation mode, we need to have the |
110 | * D-cache enabled before running any atomic operation which | 112 | * D-cache enabled before running any atomic operation which |
@@ -1036,8 +1038,6 @@ void __init setup_arch(char **cmdline_p) | |||
1036 | static int __init topology_init(void) | 1038 | static int __init topology_init(void) |
1037 | { | 1039 | { |
1038 | unsigned int cpu; | 1040 | unsigned int cpu; |
1039 | /* Record CPU-private information for the boot processor. */ | ||
1040 | bfin_setup_cpudata(0); | ||
1041 | 1041 | ||
1042 | for_each_possible_cpu(cpu) { | 1042 | for_each_possible_cpu(cpu) { |
1043 | register_cpu(&per_cpu(cpu_data, cpu).cpu, cpu); | 1043 | register_cpu(&per_cpu(cpu_data, cpu).cpu, cpu); |
diff --git a/arch/blackfin/mach-bf561/smp.c b/arch/blackfin/mach-bf561/smp.c index 7b07740cf68c..390accf17ebc 100644 --- a/arch/blackfin/mach-bf561/smp.c +++ b/arch/blackfin/mach-bf561/smp.c | |||
@@ -62,9 +62,6 @@ void __cpuinit platform_secondary_init(unsigned int cpu) | |||
62 | bfin_write_SICB_IWR1(IWR_DISABLE_ALL); | 62 | bfin_write_SICB_IWR1(IWR_DISABLE_ALL); |
63 | SSYNC(); | 63 | SSYNC(); |
64 | 64 | ||
65 | /* Store CPU-private information to the cpu_data array. */ | ||
66 | bfin_setup_cpudata(cpu); | ||
67 | |||
68 | /* We are done with local CPU inits, unblock the boot CPU. */ | 65 | /* We are done with local CPU inits, unblock the boot CPU. */ |
69 | set_cpu_online(cpu, true); | 66 | set_cpu_online(cpu, true); |
70 | spin_lock(&boot_lock); | 67 | spin_lock(&boot_lock); |