aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/include/asm/smp.h
diff options
context:
space:
mode:
authorGraf Yang <graf.yang@analog.com>2010-02-01 06:07:50 +0000
committerMike Frysinger <vapier@gentoo.org>2010-03-09 00:30:50 -0500
commit718340f62900ed44046d2b0f74d0dec7cf844194 (patch)
tree974cf52038196598c653902de3da83ca96ee3792 /arch/blackfin/include/asm/smp.h
parentBlackfin: add support for cpufreq on SMP systems (diff)
downloadlinux-dev-718340f62900ed44046d2b0f74d0dec7cf844194.tar.xz
linux-dev-718340f62900ed44046d2b0f74d0dec7cf844194.zip
Blackfin: rewrite resync_core_{i,d}cache() SMP logic to avoid per_cpu data
This functions are implicitly called by core functions like cpu_relax(), and since those functions may be called early on before common code has initialized the per-cpu data area, we need to tweak the stats gathering. Now the statistics are maintained in common bss which makes these funcs safe to use as soon as the C runtime env is setup. Signed-off-by: Graf Yang <graf.yang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/include/asm/smp.h')
-rw-r--r--arch/blackfin/include/asm/smp.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/blackfin/include/asm/smp.h b/arch/blackfin/include/asm/smp.h
index 7f26de09ca9c..f5b537967116 100644
--- a/arch/blackfin/include/asm/smp.h
+++ b/arch/blackfin/include/asm/smp.h
@@ -24,6 +24,13 @@ struct corelock_slot {
};
extern struct corelock_slot corelock;
+#ifdef __ARCH_SYNC_CORE_ICACHE
+extern unsigned long icache_invld_count[NR_CPUS];
+#endif
+#ifdef __ARCH_SYNC_CORE_DCACHE
+extern unsigned long dcache_invld_count[NR_CPUS];
+#endif
+
void smp_icache_flush_range_others(unsigned long start,
unsigned long end);
#ifdef CONFIG_HOTPLUG_CPU