From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751332AbdARXOt (ORCPT ); Wed, 18 Jan 2017 18:14:49 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:36690 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751236AbdARXOp (ORCPT ); Wed, 18 Jan 2017 18:14:45 -0500 From: Sudip Mukherjee To: Andrew Morton Cc: linux-kernel@vger.kernel.org, Sudip Mukherjee Subject: [PATCH] frv: add atomic64_add_unless() Date: Wed, 18 Jan 2017 23:13:56 +0000 Message-Id: <1484781236-6698-1-git-send-email-sudipm.mukherjee@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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