summaryrefslogtreecommitdiff
path: root/arch/alpha/include/asm/tlbflush.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/alpha/include/asm/tlbflush.h')
-rw-r--r--arch/alpha/include/asm/tlbflush.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/alpha/include/asm/tlbflush.h b/arch/alpha/include/asm/tlbflush.h
index ba4b359d6c39..0c8529997f54 100644
--- a/arch/alpha/include/asm/tlbflush.h
+++ b/arch/alpha/include/asm/tlbflush.h
@@ -58,7 +58,9 @@ flush_tlb_other(struct mm_struct *mm)
unsigned long *mmc = &mm->context[smp_processor_id()];
/* Check it's not zero first to avoid cacheline ping pong
when possible. */
- if (*mmc) *mmc = 0;
+
+ if (READ_ONCE(*mmc))
+ WRITE_ONCE(*mmc, 0);
}
#ifndef CONFIG_SMP