aboutsummaryrefslogtreecommitdiff
path: root/include/cpu/atomic/swap.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cpu/atomic/swap.h')
-rw-r--r--include/cpu/atomic/swap.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/cpu/atomic/swap.h b/include/cpu/atomic/swap.h
index ebaaa1d..57a5add 100644
--- a/include/cpu/atomic/swap.h
+++ b/include/cpu/atomic/swap.h
@@ -13,7 +13,8 @@ static inline void atm_lock(unsigned long pid, unsigned long* addr)
{
unsigned long tmp, current_lock_value;
asm volatile(
-"1: ldrex %0, [%3]\n"
+"1: clrex\n"
+" ldrex %0, [%3]\n"
" cmp %0, #0\n"
" wfene\n"
" strexeq %1, %2, [%3]\n"