Re: Build failures in -next due to 'locking/atomic, arch/arc: Implement atomic_fetch_{add,sub,and,andnot,or,xor}()'

From: Guenter Roeck
Date: Fri Jun 17 2016 - 10:53:04 EST


On 06/17/2016 07:41 AM, Peter Zijlstra wrote:
On Fri, Jun 17, 2016 at 04:39:42PM +0200, Peter Zijlstra wrote:
On Fri, Jun 17, 2016 at 07:36:56AM -0700, Guenter Roeck wrote:
Hi Peter,

I am seeing build failures in -next when trying to build arc / arcv2 targets.

arch/arc/include/asm/atomic.h:74:2: error: âSCOND_FAIL_RETRY_VAR_DEFâ undeclared
arch/arc/include/asm/atomic.h:87:2: error: expected â:â or â)â before âSCOND_FAIL_RETRY_ASMâ

Problems seem to be caused by 'locking/atomic, arch/arc: Implement
atomic_fetch_{add,sub,and,andnot,or,xor}()'. Both SCOND_FAIL_RETRY_VAR_DEF and
SCOND_FAIL_RETRY_ASM are undefined.

Crud, I messed up the rebase against the backoff reverts. Lemme go do
fixups.

I've misplaced my arc compiler, but does this make it go again?

Looks like it, yes. Build still fails for another reason, but this problem is gone.
I can not do any runtime tests, though, only build tests.

Guenter


---
arch/arc/include/asm/atomic.h | 8 --------
1 file changed, 8 deletions(-)

diff --git a/arch/arc/include/asm/atomic.h b/arch/arc/include/asm/atomic.h
index bd9c51cb2bfd..4e3c1b6b0806 100644
--- a/arch/arc/include/asm/atomic.h
+++ b/arch/arc/include/asm/atomic.h
@@ -71,7 +71,6 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
static inline int atomic_fetch_##op(int i, atomic_t *v) \
{ \
unsigned int val, orig; \
- SCOND_FAIL_RETRY_VAR_DEF \
\
/* \
* Explicit full memory barrier needed before/after as \
@@ -84,11 +83,8 @@ static inline int atomic_fetch_##op(int i, atomic_t *v) \
" " #asm_op " %[val], %[orig], %[i] \n" \
" scond %[val], [%[ctr]] \n" \
" \n" \
- SCOND_FAIL_RETRY_ASM \
- \
: [val] "=&r" (val), \
[orig] "=&r" (orig) \
- SCOND_FAIL_RETRY_VARS \
: [ctr] "r" (&v->counter), \
[i] "ir" (i) \
: "cc"); \
@@ -199,10 +195,6 @@ ATOMIC_OPS(andnot, &= ~, bic)
ATOMIC_OPS(or, |=, or)
ATOMIC_OPS(xor, ^=, xor)

-#undef SCOND_FAIL_RETRY_VAR_DEF
-#undef SCOND_FAIL_RETRY_ASM
-#undef SCOND_FAIL_RETRY_VARS
-
#else /* CONFIG_ARC_PLAT_EZNPS */

static inline int atomic_read(const atomic_t *v)