| To: | linux-mips@linux-mips.org |
|---|---|
| Subject: | [PATCH] Add missing memory barriers for correct operation of amon_cpu_start |
| From: | Raghu Gandham <raghu@mips.com> |
| Date: | Fri, 10 Jul 2009 02:06:38 -0700 |
| Cc: | raghu@mips.com, chris@mips.com |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| Sender: | linux-mips-bounce@linux-mips.org |
| User-agent: | StGIT/0.14.3 |
From: Chris Dearman <chris@mips.com>
Signed-off-by: Chris Dearman (chris@mips.com)
---
arch/mips/mti-malta/malta-amon.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/arch/mips/mti-malta/malta-amon.c b/arch/mips/mti-malta/malta-amon.c
index df9e526..469d9b0 100644
--- a/arch/mips/mti-malta/malta-amon.c
+++ b/arch/mips/mti-malta/malta-amon.c
@@ -70,11 +70,12 @@ void amon_cpu_start(int cpu,
launch->sp = sp;
launch->a0 = a0;
- /* Make sure target sees parameters before the go bit */
- smp_mb();
-
+ smp_wmb(); /* Target must see parameters before go */
launch->flags |= LAUNCH_FGO;
+ smp_wmb(); /* Target must see go before we poll */
+
while ((launch->flags & LAUNCH_FGONE) == 0)
;
+ smp_rmb(); /* Target will be updating flags soon */
pr_debug("launch: cpu%d gone!\n", cpu);
}
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 2/2] Avoid queing multiple reschedule IPI's in SMTC, Raghu Gandham |
|---|---|
| Next by Date: | Re: [PATCH] Delete fossil file, Ralf Baechle |
| Previous by Thread: | [PATCH 0/2] Port MT and SMTC changes from linux-mti, Raghu Gandham |
| Next by Thread: | Re: [PATCH] fix build failures on msp_irq_slp.c, Shane McDonald |
| Indexes: | [Date] [Thread] [Top] [All Lists] |