diff options
author | Will Deacon | 2015-05-29 15:44:06 +0200 |
---|---|---|
committer | Will Deacon | 2015-07-27 16:28:54 +0200 |
commit | db26217e6f54647b137a0fe1f2ab346de67d6f3e (patch) | |
tree | 5c839d3429de197f511161be339bcdacb786d471 /arch/arm64/include/asm/atomic_ll_sc.h | |
parent | arm64: atomics: implement atomic{,64}_cmpxchg using cmpxchg (diff) | |
download | kernel-qcow2-linux-db26217e6f54647b137a0fe1f2ab346de67d6f3e.tar.gz kernel-qcow2-linux-db26217e6f54647b137a0fe1f2ab346de67d6f3e.tar.xz kernel-qcow2-linux-db26217e6f54647b137a0fe1f2ab346de67d6f3e.zip |
arm64: atomic64_dec_if_positive: fix incorrect branch condition
If we attempt to atomic64_dec_if_positive on INT_MIN, we will underflow
and incorrectly decide that the original parameter was positive.
This patches fixes the broken condition code so that we handle this
corner case correctly.
Reviewed-by: Steve Capper <steve.capper@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/atomic_ll_sc.h')
-rw-r--r-- | arch/arm64/include/asm/atomic_ll_sc.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/include/asm/atomic_ll_sc.h b/arch/arm64/include/asm/atomic_ll_sc.h index 5e2d1db3a1db..6671978e60fe 100644 --- a/arch/arm64/include/asm/atomic_ll_sc.h +++ b/arch/arm64/include/asm/atomic_ll_sc.h @@ -159,7 +159,7 @@ __LL_SC_PREFIX(atomic64_dec_if_positive(atomic64_t *v)) " prfm pstl1strm, %2\n" "1: ldxr %0, %2\n" " subs %0, %0, #1\n" -" b.mi 2f\n" +" b.lt 2f\n" " stlxr %w1, %0, %2\n" " cbnz %w1, 1b\n" " dmb ish\n" |