x86: Issue at least one memory barrier in stop_machine_text_poke()
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: systemtap <systemtap@sources.redhat.com> Cc: DLE <dle-develop@lists.sourceforge.net> Cc: Jason Baron <jbaron@redhat.com> LKML-Reference: <20100304033850.3819.74590.stgit@localhost6.localdomain6> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
32cb0dd506
commit
e5a1101664
1 changed files with 2 additions and 2 deletions
|
@ -595,8 +595,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,
|
||||
|
|
Loading…
Reference in a new issue