Messages in this thread Patch in this message | | | From | Sudip Mukherjee <> | Subject | [PATCH] frv: add atomic64_add_unless() | Date | Wed, 18 Jan 2017 23:13:56 +0000 |
| |
The build of frv allmodconfig was failing with the error: lib/atomic64_test.c:209:9: error: implicit declaration of function 'atomic64_add_unless'
All the atomic64 operations were defined in frv, but atomic64_add_unless() was not done. Implement atomic64_add_unless() as done in other arch.
Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> ---
build log of next-20170118 is at: https://travis-ci.org/sudipm-mukherjee/parport/jobs/192936474
There is also two more errors about redefinition. I will prepare separate patch for that.
arch/frv/include/asm/atomic.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/arch/frv/include/asm/atomic.h b/arch/frv/include/asm/atomic.h index 1c2a5e2..994ed3d 100644 --- a/arch/frv/include/asm/atomic.h +++ b/arch/frv/include/asm/atomic.h @@ -161,6 +161,22 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) return c; } +static inline int atomic64_add_unless(atomic64_t *v, long long i, long long u) +{ + long long c, old; + + c = atomic64_read(v); + for (;;) { + if (unlikely(c == u)) + break; + old = atomic64_cmpxchg(v, c, c + i); + if (likely(old == c)) + break; + c = old; + } + return c != u; +} + #define ATOMIC_OP(op) \ static inline int atomic_fetch_##op(int i, atomic_t *v) \ { \ -- 2.7.4
| |