diff options
Diffstat (limited to 'arch/arm64/include/asm/spinlock.h')
-rw-r--r-- | arch/arm64/include/asm/spinlock.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm64/include/asm/spinlock.h b/arch/arm64/include/asm/spinlock.h index 7065e920149d..0defa0728a9b 100644 --- a/arch/arm64/include/asm/spinlock.h +++ b/arch/arm64/include/asm/spinlock.h | |||
@@ -59,9 +59,10 @@ static inline int arch_spin_trylock(arch_spinlock_t *lock) | |||
59 | unsigned int tmp; | 59 | unsigned int tmp; |
60 | 60 | ||
61 | asm volatile( | 61 | asm volatile( |
62 | " ldaxr %w0, %1\n" | 62 | "2: ldaxr %w0, %1\n" |
63 | " cbnz %w0, 1f\n" | 63 | " cbnz %w0, 1f\n" |
64 | " stxr %w0, %w2, %1\n" | 64 | " stxr %w0, %w2, %1\n" |
65 | " cbnz %w0, 2b\n" | ||
65 | "1:\n" | 66 | "1:\n" |
66 | : "=&r" (tmp), "+Q" (lock->lock) | 67 | : "=&r" (tmp), "+Q" (lock->lock) |
67 | : "r" (1) | 68 | : "r" (1) |