aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-exynos/platsmp.c3
-rw-r--r--arch/arm/mach-imx/platsmp.c3
-rw-r--r--arch/arm/mach-msm/platsmp.c3
-rw-r--r--arch/arm/mach-prima2/platsmp.c3
-rw-r--r--arch/arm/mach-sti/platsmp.c3
-rw-r--r--arch/arm/mach-ux500/platsmp.c3
-rw-r--r--arch/arm/plat-versatile/platsmp.c3
7 files changed, 7 insertions, 14 deletions
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index 58b43e6f9262..ddf73bd20491 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -64,8 +64,7 @@ static void write_pen_release(int val)
64{ 64{
65 pen_release = val; 65 pen_release = val;
66 smp_wmb(); 66 smp_wmb();
67 __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release)); 67 sync_cache_w(&pen_release);
68 outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
69} 68}
70 69
71static void __iomem *scu_base_addr(void) 70static void __iomem *scu_base_addr(void)
diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c
index 1f24c1fdfea4..5b57c17c06bd 100644
--- a/arch/arm/mach-imx/platsmp.c
+++ b/arch/arm/mach-imx/platsmp.c
@@ -92,8 +92,7 @@ static void __init imx_smp_prepare_cpus(unsigned int max_cpus)
92 * secondary cores when booting them. 92 * secondary cores when booting them.
93 */ 93 */
94 asm("mrc p15, 0, %0, c15, c0, 1" : "=r" (g_diag_reg) : : "cc"); 94 asm("mrc p15, 0, %0, c15, c0, 1" : "=r" (g_diag_reg) : : "cc");
95 __cpuc_flush_dcache_area(&g_diag_reg, sizeof(g_diag_reg)); 95 sync_cache_w(&g_diag_reg);
96 outer_clean_range(__pa(&g_diag_reg), __pa(&g_diag_reg + 1));
97} 96}
98 97
99struct smp_operations imx_smp_ops __initdata = { 98struct smp_operations imx_smp_ops __initdata = {
diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c
index 3f06edcdd0ce..f10a1f58fde9 100644
--- a/arch/arm/mach-msm/platsmp.c
+++ b/arch/arm/mach-msm/platsmp.c
@@ -99,8 +99,7 @@ static int msm_boot_secondary(unsigned int cpu, struct task_struct *idle)
99 * "cpu" is Linux's internal ID. 99 * "cpu" is Linux's internal ID.
100 */ 100 */
101 pen_release = cpu_logical_map(cpu); 101 pen_release = cpu_logical_map(cpu);
102 __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release)); 102 sync_cache_w(&pen_release);
103 outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
104 103
105 /* 104 /*
106 * Send the secondary CPU a soft interrupt, thereby causing 105 * Send the secondary CPU a soft interrupt, thereby causing
diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c
index 3dbcb1ab6e37..e358b0736dea 100644
--- a/arch/arm/mach-prima2/platsmp.c
+++ b/arch/arm/mach-prima2/platsmp.c
@@ -106,8 +106,7 @@ static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle)
106 * "cpu" is Linux's internal ID. 106 * "cpu" is Linux's internal ID.
107 */ 107 */
108 pen_release = cpu_logical_map(cpu); 108 pen_release = cpu_logical_map(cpu);
109 __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release)); 109 sync_cache_w(&pen_release);
110 outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
111 110
112 /* 111 /*
113 * Send the secondary CPU SEV, thereby causing the boot monitor to read 112 * Send the secondary CPU SEV, thereby causing the boot monitor to read
diff --git a/arch/arm/mach-sti/platsmp.c b/arch/arm/mach-sti/platsmp.c
index dce50d983a8e..fa2c33ffac04 100644
--- a/arch/arm/mach-sti/platsmp.c
+++ b/arch/arm/mach-sti/platsmp.c
@@ -31,8 +31,7 @@ static void write_pen_release(int val)
31{ 31{
32 pen_release = val; 32 pen_release = val;
33 smp_wmb(); 33 smp_wmb();
34 __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release)); 34 sync_cache_w(&pen_release);
35 outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
36} 35}
37 36
38static DEFINE_SPINLOCK(boot_lock); 37static DEFINE_SPINLOCK(boot_lock);
diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c
index 1f296e796a4f..a44967f3168c 100644
--- a/arch/arm/mach-ux500/platsmp.c
+++ b/arch/arm/mach-ux500/platsmp.c
@@ -38,8 +38,7 @@ static void write_pen_release(int val)
38{ 38{
39 pen_release = val; 39 pen_release = val;
40 smp_wmb(); 40 smp_wmb();
41 __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release)); 41 sync_cache_w(&pen_release);
42 outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
43} 42}
44 43
45static void __iomem *scu_base_addr(void) 44static void __iomem *scu_base_addr(void)
diff --git a/arch/arm/plat-versatile/platsmp.c b/arch/arm/plat-versatile/platsmp.c
index 39895d892c3b..53feb90c840c 100644
--- a/arch/arm/plat-versatile/platsmp.c
+++ b/arch/arm/plat-versatile/platsmp.c
@@ -27,8 +27,7 @@ static void write_pen_release(int val)
27{ 27{
28 pen_release = val; 28 pen_release = val;
29 smp_wmb(); 29 smp_wmb();
30 __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release)); 30 sync_cache_w(&pen_release);
31 outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
32} 31}
33 32
34static DEFINE_SPINLOCK(boot_lock); 33static DEFINE_SPINLOCK(boot_lock);