summaryrefslogtreecommitdiff
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorBo Yan <byan@nvidia.com>2012-11-27 14:40:33 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 12:43:52 -0700
commit3b7ada1b78bf23fa0d734fdeac990d273649c050 (patch)
tree141f107a7de3c2942b02ab22db43f6464574761e /arch/arm/kernel
parentae252b528ddbc6b61460bff64744bb92c6c40de1 (diff)
ARM: tegra11x: Remove redundant cache flush
For CPU hotplug, since L1 cache is flushed when calling tegra_cpu_die, there is no reason to do the same before that point. Change-Id: I59adca195f8c0016819caa16a38602d886d1a10f Signed-off-by: Bo Yan <byan@nvidia.com> Reviewed-on: http://git-master/r/166701 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Antti Miettinen <amiettinen@nvidia.com>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/smp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 07897acc9220..0a93ea0c4482 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -184,6 +184,7 @@ int __cpuinit __cpu_disable(void)
*/
percpu_timer_stop();
+#ifndef CONFIG_ARCH_TEGRA_11x_SOC
/*
* Flush user cache and TLB mappings, and then remove this CPU
* from the vm mask set of all processes.
@@ -191,8 +192,16 @@ int __cpuinit __cpu_disable(void)
* Caches are flushed to the Level of Unification Inner Shareable
* to write-back dirty lines to unified caches shared by all CPUs.
*/
+
+ /*
+ * This step can be skipped over if we do the same thing later,
+ * which happens to be the case for tegra. We need to be careful
+ * here to make sure tegra_cpu_die always follows __cpu_disable
+ * in cpu shutdown sequence.
+ */
flush_cache_louis();
local_flush_tlb_all();
+#endif
clear_tasks_mm_cpumask(cpu);