lkml.org 
[lkml]   [2010]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH -tip v2 2/2] x86: Issue at least one memory barrier in stop_machine_text_poke().
    Date
    Fix stop_machine_text_poke() to issue smp_mb() before exiting waiting
    loop, and use cpu_relax() for waiting.

    Changes in v2:
    - Don't use ACCESS_ONCE().

    Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
    Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Jason Baron <jbaron@redhat.com>
    ---

    arch/x86/kernel/alternative.c | 4 ++--
    1 files changed, 2 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
    index 635e4f4..3a4bf35 100644
    --- a/arch/x86/kernel/alternative.c
    +++ b/arch/x86/kernel/alternative.c
    @@ -597,8 +597,8 @@ static int __kprobes stop_machine_text_poke(void *data)
    wrote_text = 1;
    } else {
    while (!wrote_text)
    - smp_rmb();
    - sync_core();
    + cpu_relax();
    + smp_mb(); /* Load wrote_text before following execution */
    }

    flush_icache_range((unsigned long)tpp->addr,

    --
    Masami Hiramatsu
    e-mail: mhiramat@redhat.com


    \
     
     \ /
      Last update: 2010-03-04 04:35    [W:0.019 / U:29.904 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site