diff options
author | Peter Zijlstra <peterz@infradead.org> | 2019-06-13 15:43:19 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-10-07 18:59:27 +0200 |
commit | 57e4c0e0efce23f4bc82c4adcfa4a6754e61486a (patch) | |
tree | 9452c3c6db3327f433f80721566833cc9b586290 /arch/ia64 | |
parent | 11daaf5c38f2a53c93ce986c82d2ba201b09dd1c (diff) | |
download | linux-stable-57e4c0e0efce23f4bc82c4adcfa4a6754e61486a.tar.gz linux-stable-57e4c0e0efce23f4bc82c4adcfa4a6754e61486a.tar.bz2 linux-stable-57e4c0e0efce23f4bc82c4adcfa4a6754e61486a.zip |
mips/atomic: Fix loongson_llsc_mb() wreckage
[ Upstream commit 1c6c1ca318585f1096d4d04bc722297c85e9fb8a ]
The comment describing the loongson_llsc_mb() reorder case doesn't
make any sense what so ever. Instruction re-ordering is not an SMP
artifact, but rather a CPU local phenomenon. Clarify the comment by
explaining that these issue cause a coherence fail.
For the branch speculation case; if futex_atomic_cmpxchg_inatomic()
needs one at the bne branch target, then surely the normal
__cmpxch_asm() implementation does too. We cannot rely on the
barriers from cmpxchg() because cmpxchg_local() is implemented with
the same macro, and branch prediction and speculation are, too, CPU
local.
Fixes: e02e07e3127d ("MIPS: Loongson: Introduce and use loongson_llsc_mb()")
Cc: Huacai Chen <chenhc@lemote.com>
Cc: Huang Pei <huangpei@loongson.cn>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'arch/ia64')
0 files changed, 0 insertions, 0 deletions