Subject: Re: [PATCH 1/5] powerpc: 85xx: make FSL_85XX_CACHE_SRAM configurable

From: kbuild test robot <[email-masked]>
Date: Thu, 16 Apr 2020 08:58:24 +0800

Hi Wang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on char-misc/char-misc-testing staging/staging-testing v5.7-rc1 next-20200415]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Wang-Wenhu/drivers-uio-new-driver-uio_fsl_85xx_cache_sram/20200416-040633
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <[email-masked]>

All error/warnings (new ones prefixed by >>):

   WARNING: unmet direct dependencies detected for ARCH_32BIT_OFF_T
   Depends on !64BIT
   Selected by
   - PPC && PPC32
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:14:3: error: conflicting types for 'atomic64_t'
   14 | } atomic64_t;
   | ^~~~~~~~~~
   In file included from include/linux/page-flags.h:9,
   from kernel/bounds.c:10:
   include/linux/types.h:178:3: note: previous declaration of 'atomic64_t' was here
   178 | } atomic64_t;
   | ^~~~~~~~~~
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:18:12: error: conflicting types for 'atomic64_read'
   18 | extern s64 atomic64_read(const atomic64_t
   | ^~~~~~~~~~~~~
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:300:23: note: previous definition of 'atomic64_read' was here
   300 | static __inline__ s64 atomic64_read(const atomic64_t
   | ^~~~~~~~~~~~~
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:19:13: error: conflicting types for 'atomic64_set'
   19 | extern void atomic64_set(atomic64_t s64 i);
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:309:24: note: previous definition of 'atomic64_set' was here
   309 | static __inline__ void atomic64_set(atomic64_t s64 i)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:32: warning: "ATOMIC64_OPS" redefined
   32 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op)
   |
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:380: note: this is the location of the previous definition
   380 | #define ATOMIC64_OPS(op, asm_op) |
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:24:14: error: conflicting types for 'atomic64_add'
   24 | extern void atomic64_##op(s64 a, atomic64_t
   | ^~~~~~~~~
>> include/asm-generic/atomic64.h:32:26: note: in expansion of macro 'ATOMIC64_OP'
   32 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op)
   | ^~~~~~~~~~~
>> include/asm-generic/atomic64.h:34:1: note: in expansion of macro 'ATOMIC64_OPS'
   34 | ATOMIC64_OPS(add)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:315:24: note: previous definition of 'atomic64_add' was here
   315 | static __inline__ void atomic64_##op(s64 a, atomic64_t | ^~~~~~~~~
>> arch/powerpc/include/asm/atomic.h:366:2: note: in expansion of macro 'ATOMIC64_OP'
   366 | ATOMIC64_OP(op, asm_op) | ^~~~~~~~~~~
>> arch/powerpc/include/asm/atomic.h:370:1: note: in expansion of macro 'ATOMIC64_OPS'
   370 | ATOMIC64_OPS(add, add)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:24:14: error: conflicting types for 'atomic64_sub'
   24 | extern void atomic64_##op(s64 a, atomic64_t
   | ^~~~~~~~~
>> include/asm-generic/atomic64.h:32:26: note: in expansion of macro 'ATOMIC64_OP'
   32 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op)
   | ^~~~~~~~~~~
   include/asm-generic/atomic64.h:35:1: note: in expansion of macro 'ATOMIC64_OPS'
   35 | ATOMIC64_OPS(sub)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:315:24: note: previous definition of 'atomic64_sub' was here
   315 | static __inline__ void atomic64_##op(s64 a, atomic64_t | ^~~~~~~~~
>> arch/powerpc/include/asm/atomic.h:366:2: note: in expansion of macro 'ATOMIC64_OP'
   366 | ATOMIC64_OP(op, asm_op) | ^~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:371:1: note: in expansion of macro 'ATOMIC64_OPS'
   371 | ATOMIC64_OPS(sub, subf)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:24:14: error: conflicting types for 'atomic64_and'
   24 | extern void atomic64_##op(s64 a, atomic64_t
   | ^~~~~~~~~
   include/asm-generic/atomic64.h:38:26: note: in expansion of macro 'ATOMIC64_OP'
   38 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op)
   | ^~~~~~~~~~~
   include/asm-generic/atomic64.h:40:1: note: in expansion of macro 'ATOMIC64_OPS'
   40 | ATOMIC64_OPS(and)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:315:24: note: previous definition of 'atomic64_and' was here
   315 | static __inline__ void atomic64_##op(s64 a, atomic64_t | ^~~~~~~~~
   arch/powerpc/include/asm/atomic.h:381:2: note: in expansion of macro 'ATOMIC64_OP'
   381 | ATOMIC64_OP(op, asm_op) | ^~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:384:1: note: in expansion of macro 'ATOMIC64_OPS'
   384 | ATOMIC64_OPS(and, and)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:24:14: error: conflicting types for 'atomic64_or'
   24 | extern void atomic64_##op(s64 a, atomic64_t
   | ^~~~~~~~~
   include/asm-generic/atomic64.h:38:26: note: in expansion of macro 'ATOMIC64_OP'
   38 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op)
   | ^~~~~~~~~~~
   include/asm-generic/atomic64.h:41:1: note: in expansion of macro 'ATOMIC64_OPS'
   41 | ATOMIC64_OPS(or)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:315:24: note: previous definition of 'atomic64_or' was here
   315 | static __inline__ void atomic64_##op(s64 a, atomic64_t | ^~~~~~~~~
   arch/powerpc/include/asm/atomic.h:381:2: note: in expansion of macro 'ATOMIC64_OP'
   381 | ATOMIC64_OP(op, asm_op) | ^~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:385:1: note: in expansion of macro 'ATOMIC64_OPS'
   385 | ATOMIC64_OPS(or, or)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> include/asm-generic/atomic64.h:24:14: error: conflicting types for 'atomic64_xor'
   24 | extern void atomic64_##op(s64 a, atomic64_t
   | ^~~~~~~~~
   include/asm-generic/atomic64.h:38:26: note: in expansion of macro 'ATOMIC64_OP'
   38 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op)
   | ^~~~~~~~~~~
   include/asm-generic/atomic64.h:42:1: note: in expansion of macro 'ATOMIC64_OPS'
   42 | ATOMIC64_OPS(xor)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:315:24: note: previous definition of 'atomic64_xor' was here
   315 | static __inline__ void atomic64_##op(s64 a, atomic64_t | ^~~~~~~~~
   arch/powerpc/include/asm/atomic.h:381:2: note: in expansion of macro 'ATOMIC64_OP'
   381 | ATOMIC64_OP(op, asm_op) | ^~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:386:1: note: in expansion of macro 'ATOMIC64_OPS'
   386 | ATOMIC64_OPS(xor, xor)
   | ^~~~~~~~~~~~
>> arch/powerpc/include/asm/atomic.h:485:34: error: conflicting types for 'atomic64_dec_if_positive'
   485 | #define atomic64_dec_if_positive atomic64_dec_if_positive
   | ^~~~~~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/atomic64.h:49:12: note: in expansion of macro 'atomic64_dec_if_positive'
   49 | extern s64 atomic64_dec_if_positive(atomic64_t
   | ^~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:466:23: note: previous definition of 'atomic64_dec_if_positive' was here
   466 | static __inline__ s64 atomic64_dec_if_positive(atomic64_t
   | ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/include/asm/atomic.h:11,
   from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
>> arch/powerpc/include/asm/cmpxchg.h:482:4: error: expected identifier or '(' before '{' token
   482 | ({ | ^
>> arch/powerpc/include/asm/atomic.h:487:36: note: in expansion of macro 'cmpxchg'
   487 | #define atomic64_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
   | ^~~~~~~
>> include/asm-generic/atomic64.h:51:12: note: in expansion of macro 'atomic64_cmpxchg'
   51 | extern s64 atomic64_cmpxchg(atomic64_t s64 o, s64 n);
   | ^~~~~~~~~~~~~~~~
   In file included from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   include/linux/atomic.h:66:2: error: expected identifier or '(' before '{' token
   66 | ({ | ^
   include/linux/atomic-fallback.h:27:2: note: in expansion of macro '__atomic_op_fence'
   27 | __atomic_op_fence(xchg, __VA_ARGS__)
   | ^~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:493:32: note: in expansion of macro 'xchg'
   493 | #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
   | ^~~~
   include/asm-generic/atomic64.h:52:12: note: in expansion of macro 'atomic64_xchg'
   52 | extern s64 atomic64_xchg(atomic64_t s64 new);
   | ^~~~~~~~~~~~~
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:526:35: error: conflicting types for 'atomic64_fetch_add_unless'
   526 | #define atomic64_fetch_add_unless atomic64_fetch_add_unless
   | ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/asm-generic/atomic64.h:53:12: note: in expansion of macro 'atomic64_fetch_add_unless'
   53 | extern s64 atomic64_fetch_add_unless(atomic64_t s64 a, s64 u);
   | ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:505:23: note: previous definition of 'atomic64_fetch_add_unless' was here
   505 | static __inline__ s64 atomic64_fetch_add_unless(atomic64_t s64 a, s64 u)
   | ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   include/linux/atomic-fallback.h: In function 'atomic64_add_return_acquire':
   include/linux/atomic-fallback.h:1216:43: error: passing argument 2 of 'atomic64_add_return_relaxed' from incompatible pointer type
   1216 | s64 ret = atomic64_add_return_relaxed(i, v);
   | ^
   | |
   | atomic64_t Makefile arch block certs crypto drivers fs include init ipc kernel lib mm net scripts security sound source usr virt {aka struct <anonymous>
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:331:51: note: expected 'atomic64_t {aka 'struct <anonymous> but argument is of type 'atomic64_t {aka 'struct <anonymous>
   331 | atomic64_##op##_return_relaxed(s64 a, atomic64_t | ~~~~~~~~~~~~^
   arch/powerpc/include/asm/atomic.h:367:2: note: in expansion of macro 'ATOMIC64_OP_RETURN_RELAXED'
   367 | ATOMIC64_OP_RETURN_RELAXED(op, asm_op) | ^~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:370:1: note: in expansion of macro 'ATOMIC64_OPS'
   370 | ATOMIC64_OPS(add, add)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   include/linux/atomic-fallback.h: In function 'atomic64_add_return_release':
   include/linux/atomic-fallback.h:1228:40: error: passing argument 2 of 'atomic64_add_return_relaxed' from incompatible pointer type
   1228 | return atomic64_add_return_relaxed(i, v);
   | ^
   | |
   | atomic64_t Makefile arch block certs crypto drivers fs include init ipc kernel lib mm net scripts security sound source usr virt {aka struct <anonymous>
   In file included from include/linux/atomic.h:7,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   arch/powerpc/include/asm/atomic.h:331:51: note: expected 'atomic64_t {aka 'struct <anonymous> but argument is of type 'atomic64_t {aka 'struct <anonymous>
   331 | atomic64_##op##_return_relaxed(s64 a, atomic64_t | ~~~~~~~~~~~~^
   arch/powerpc/include/asm/atomic.h:367:2: note: in expansion of macro 'ATOMIC64_OP_RETURN_RELAXED'
   367 | ATOMIC64_OP_RETURN_RELAXED(op, asm_op) | ^~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/atomic.h:370:1: note: in expansion of macro 'ATOMIC64_OPS'
   370 | ATOMIC64_OPS(add, add)
   | ^~~~~~~~~~~~
   In file included from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   include/linux/atomic-fallback.h: At top level:
   include/linux/atomic-fallback.h:1235:1: error: static declaration of 'atomic64_add_return' follows non-static declaration
   1235 | atomic64_add_return(s64 i, atomic64_t
   | ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/atomic-fallback.h:1185,
   from include/linux/atomic.h:74,
   from include/linux/debug_locks.h:6,
   from include/linux/lockdep.h:28,
   from include/linux/spinlock_types.h:18,
   from kernel/bounds.c:14:
   include/asm-generic/atomic64.h:27:12: note: previous declaration of 'atomic64_add_return' was here
   27 | extern s64 atomic64_##op##_return(s64 a, atomic64_t
   | ^~~~~~~~~
   include/asm-generic/atomic64.h:32:42: note: in expansion of macro 'ATOMIC64_OP_RETURN'
   32 | #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op)
   | ^~~~~~~~~~~~~~~~~~
   include/asm-generic/atomic64.h:34:1: note: in expansion of macro 'ATOMIC64_OPS'
   34 | ATOMIC64_OPS(add)

vim +/atomic64_t +14 include/asm-generic/atomic64.h

09d4e0edd4614e7 Paul Mackerras 2009-06-12  11  
09d4e0edd4614e7 Paul Mackerras 2009-06-12  12  typedef struct {
9255813d5841e15 Mark Rutland   2019-05-22  13  	s64 counter;
09d4e0edd4614e7 Paul Mackerras 2009-06-12 @14  } atomic64_t;
09d4e0edd4614e7 Paul Mackerras 2009-06-12  15  
09d4e0edd4614e7 Paul Mackerras 2009-06-12  16  #define ATOMIC64_INIT(i)	{ (i) }
09d4e0edd4614e7 Paul Mackerras 2009-06-12  17  
9255813d5841e15 Mark Rutland   2019-05-22 @18  extern s64 atomic64_read(const atomic64_t *v);
9255813d5841e15 Mark Rutland   2019-05-22 @19  extern void atomic64_set(atomic64_t *v, s64 i);
560cb12a4080a48 Peter Zijlstra 2014-04-23  20  
9d664c0aec3bfdb Peter Zijlstra 2017-06-09  21  #define atomic64_set_release(v, i)	atomic64_set((v), (i))
9d664c0aec3bfdb Peter Zijlstra 2017-06-09  22  
560cb12a4080a48 Peter Zijlstra 2014-04-23  23  #define ATOMIC64_OP(op)							\
9255813d5841e15 Mark Rutland   2019-05-22 @24  extern void	 atomic64_##op(s64 a, atomic64_t *v);
560cb12a4080a48 Peter Zijlstra 2014-04-23  25  
560cb12a4080a48 Peter Zijlstra 2014-04-23  26  #define ATOMIC64_OP_RETURN(op)						\
9255813d5841e15 Mark Rutland   2019-05-22  27  extern s64 atomic64_##op##_return(s64 a, atomic64_t *v);
560cb12a4080a48 Peter Zijlstra 2014-04-23  28  
28aa2bda2211f43 Peter Zijlstra 2016-04-18  29  #define ATOMIC64_FETCH_OP(op)						\
9255813d5841e15 Mark Rutland   2019-05-22  30  extern s64 atomic64_fetch_##op(s64 a, atomic64_t *v);
28aa2bda2211f43 Peter Zijlstra 2016-04-18  31  
28aa2bda2211f43 Peter Zijlstra 2016-04-18 @32  #define ATOMIC64_OPS(op)	ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op)
560cb12a4080a48 Peter Zijlstra 2014-04-23  33  
560cb12a4080a48 Peter Zijlstra 2014-04-23 @34  ATOMIC64_OPS(add)
560cb12a4080a48 Peter Zijlstra 2014-04-23  35  ATOMIC64_OPS(sub)
560cb12a4080a48 Peter Zijlstra 2014-04-23  36  
28aa2bda2211f43 Peter Zijlstra 2016-04-18  37  #undef ATOMIC64_OPS
28aa2bda2211f43 Peter Zijlstra 2016-04-18  38  #define ATOMIC64_OPS(op)	ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op)
28aa2bda2211f43 Peter Zijlstra 2016-04-18  39  
28aa2bda2211f43 Peter Zijlstra 2016-04-18  40  ATOMIC64_OPS(and)
28aa2bda2211f43 Peter Zijlstra 2016-04-18  41  ATOMIC64_OPS(or)
28aa2bda2211f43 Peter Zijlstra 2016-04-18  42  ATOMIC64_OPS(xor)
e6942b7de2dfe44 Peter Zijlstra 2014-04-23  43  
560cb12a4080a48 Peter Zijlstra 2014-04-23  44  #undef ATOMIC64_OPS
28aa2bda2211f43 Peter Zijlstra 2016-04-18  45  #undef ATOMIC64_FETCH_OP
560cb12a4080a48 Peter Zijlstra 2014-04-23  46  #undef ATOMIC64_OP_RETURN
560cb12a4080a48 Peter Zijlstra 2014-04-23  47  #undef ATOMIC64_OP
560cb12a4080a48 Peter Zijlstra 2014-04-23  48  
9255813d5841e15 Mark Rutland   2019-05-22 @49  extern s64 atomic64_dec_if_positive(atomic64_t *v);
b3a2a05f9111de0 Mark Rutland   2018-06-21  50  #define atomic64_dec_if_positive atomic64_dec_if_positive
9255813d5841e15 Mark Rutland   2019-05-22 @51  extern s64 atomic64_cmpxchg(atomic64_t *v, s64 o, s64 n);
9255813d5841e15 Mark Rutland   2019-05-22 @52  extern s64 atomic64_xchg(atomic64_t *v, s64 new);
9255813d5841e15 Mark Rutland   2019-05-22 @53  extern s64 atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u);
00b808ab79ead37 Mark Rutland   2018-06-21  54  #define atomic64_fetch_add_unless atomic64_fetch_add_unless
09d4e0edd4614e7 Paul Mackerras 2009-06-12  55  

:::::: The code at line 14 was first introduced by commit
:::::: 09d4e0edd4614e787393acc582ac701c6ec3565b lib: Provide generic atomic64_t implementation

:::::: TO: Paul Mackerras <[email-masked]>
:::::: CC: Benjamin Herrenschmidt <[email-masked]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email-masked]