linux-mips
[Top] [All Lists]

[PATCH] Add missing memory barriers for correct operation of amon_cpu_st

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>
  • [PATCH] Add missing memory barriers for correct operation of amon_cpu_start, Raghu Gandham <=