bac4e960b5
Mathieu Desnoyers pointed out that the ARM barriers were lacking: - cmpxchg, xchg and atomic add return need memory barriers on architectures which can reorder the relative order in which memory read/writes can be seen between CPUs, which seems to include recent ARM architectures. Those barriers are currently missing on ARM. - test_and_xxx_bit were missing SMP barriers. So put these barriers in. Provide separate atomic_add/atomic_sub operations which do not require barriers. Reported-Reviewed-and-Acked-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> |
||
---|---|---|
.. | ||
.gitignore | ||
armksyms.c | ||
arthur.c | ||
asm-offsets.c | ||
atags.c | ||
atags.h | ||
bios32.c | ||
calls.S | ||
compat.c | ||
compat.h | ||
crunch-bits.S | ||
crunch.c | ||
debug.S | ||
dma-isa.c | ||
dma.c | ||
ecard.c | ||
ecard.h | ||
elf.c | ||
entry-armv.S | ||
entry-common.S | ||
entry-header.S | ||
fiq.c | ||
ftrace.c | ||
head-common.S | ||
head-nommu.S | ||
head.S | ||
init_task.c | ||
io.c | ||
irq.c | ||
isa.c | ||
iwmmxt.S | ||
kgdb.c | ||
kprobes-decode.c | ||
kprobes.c | ||
machine_kexec.c | ||
Makefile | ||
module.c | ||
process.c | ||
ptrace.c | ||
ptrace.h | ||
relocate_kernel.S | ||
setup.c | ||
signal.c | ||
signal.h | ||
smp.c | ||
stacktrace.c | ||
sys_arm.c | ||
sys_oabi-compat.c | ||
thumbee.c | ||
time.c | ||
traps.c | ||
unwind.c | ||
vmlinux.lds.S | ||
xscale-cp0.c |