Re: [paulmckrcu:cmpxchg2.2026.09.22a 25/28] arch/arc/include/asm/cmpxchg.h:71:23: warning: unused variable '_new_'

Bradley Morgan brads at mainlining.org
Wed Sep 23 14:13:37 PDT 2026


On 23 September 2026 22:12:09 BST, kernel test robot <lkp at intel.com> wrote:
>tree:   https://github.com/paulmckrcu/linux cmpxchg2.2026.09.22a
>head:   54c282c15475ebfae4712fe3ab637c9d19c723d6
>commit: b6d4f6af38f85e7948fd64f9bf09cbb858b4dade [25/28] ARC: Emulate two-byte cmpxchg
>config: arc-randconfig-1001-20260924 (https://download.01.org/0day-ci/archive/20260924/202609240539.AkulvjVe-lkp@intel.com/config)
>compiler: arc-linux-gcc (GCC) 14.3.0
>reproduce (this is a W=1 build):
>(https://download.01.org/0day-ci/archive/20260924/202609240539.AkulvjVe-lkp@intel.com/reproduce)
>
>If you fix the issue in a separate patch/commit (i.e. not just a new
>version of
>the same patch/commit), kindly add following tags
>| Reported-by: kernel test robot <lkp at intel.com>
>| Closes:
>https://lore.kernel.org/oe-kbuild-all/202609240539.AkulvjVe-lkp@intel.com/
>
>All warnings (new ones prefixed by >>):
>
>   In file included from arch/arc/include/asm/atomic.h:13,
>                    from include/linux/atomic.h:7,
>                    from include/asm-generic/bitops/lock.h:5,
>                    from arch/arc/include/asm/bitops.h:190,
>                    from include/linux/bitops.h:67,
>                    from include/linux/log2.h:12,
>                    from kernel/bounds.c:14:
>   include/linux/atomic/atomic-arch-fallback.h: In function 'raw_atomic_cmpxchg':
>   arch/arc/include/asm/cmpxchg.h:80:23: error: '_o_' undeclared (first use in this function); did you mean '_p_'?
>      80 |         if (_prev_ == _o_)                                              \
>         |                       ^~~
>   include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg'
>      55 | #define raw_cmpxchg arch_cmpxchg
>         |                     ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2026:16: note: in expansion of macro 'raw_cmpxchg'
>    2026 |         return raw_cmpxchg(&v->counter, old, new);
>         |                ^~~~~~~~~~~
>   arch/arc/include/asm/cmpxchg.h:80:23: note: each undeclared identifier is reported only once for each function it appears in
>      80 |         if (_prev_ == _o_)                                              \
>         |                       ^~~
>   include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg'
>      55 | #define raw_cmpxchg arch_cmpxchg
>         |                     ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2026:16: note: in expansion of macro 'raw_cmpxchg'
>    2026 |         return raw_cmpxchg(&v->counter, old, new);
>         |                ^~~~~~~~~~~
>   arch/arc/include/asm/cmpxchg.h:81:24: error: '_n_' undeclared (first use in this function); did you mean '_p_'?
>      81 |                 *_p_ = _n_;                                             \
>         |                        ^~~
>   include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg'
>      55 | #define raw_cmpxchg arch_cmpxchg
>         |                     ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2026:16: note: in expansion of macro 'raw_cmpxchg'
>    2026 |         return raw_cmpxchg(&v->counter, old, new);
>         |                ^~~~~~~~~~~
>>> arch/arc/include/asm/cmpxchg.h:71:23: warning: unused variable '_new_'
>[-Wunused-variable]
>      71 |         unsigned long _new_ = (unsigned long)(0 ? *(_p_) : (new));              \
>         |                       ^~~~~
>   include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg'
>      55 | #define raw_cmpxchg arch_cmpxchg
>         |                     ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2026:16: note: in expansion of macro 'raw_cmpxchg'
>    2026 |         return raw_cmpxchg(&v->counter, old, new);
>         |                ^~~~~~~~~~~
>>> arch/arc/include/asm/cmpxchg.h:70:23: warning: unused variable '_old_'
>[-Wunused-variable]
>      70 |         unsigned long _old_ = (unsigned long)(0 ? *(_p_) : (old));              \
>         |                       ^~~~~
>   include/linux/atomic/atomic-arch-fallback.h:55:21: note: in expansion of macro 'arch_cmpxchg'
>      55 | #define raw_cmpxchg arch_cmpxchg
>         |                     ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2026:16: note: in expansion of macro 'raw_cmpxchg'
>    2026 |         return raw_cmpxchg(&v->counter, old, new);
>         |                ^~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h: In function 'raw_atomic_cmpxchg_acquire':
>   arch/arc/include/asm/cmpxchg.h:80:23: error: '_o_' undeclared (first use in this function); did you mean '_p_'?
>      80 |         if (_prev_ == _o_)                                              \
>         |                       ^~~
>   include/linux/atomic/atomic-arch-fallback.h:70:29: note: in expansion of macro 'arch_cmpxchg'
>      70 | #define raw_cmpxchg_acquire arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2055:16: note: in expansion of macro 'raw_cmpxchg_acquire'
>    2055 |         return raw_cmpxchg_acquire(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>   arch/arc/include/asm/cmpxchg.h:81:24: error: '_n_' undeclared (first use in this function); did you mean '_p_'?
>      81 |                 *_p_ = _n_;                                             \
>         |                        ^~~
>   include/linux/atomic/atomic-arch-fallback.h:70:29: note: in expansion of macro 'arch_cmpxchg'
>      70 | #define raw_cmpxchg_acquire arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2055:16: note: in expansion of macro 'raw_cmpxchg_acquire'
>    2055 |         return raw_cmpxchg_acquire(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>>> arch/arc/include/asm/cmpxchg.h:71:23: warning: unused variable '_new_'
>[-Wunused-variable]
>      71 |         unsigned long _new_ = (unsigned long)(0 ? *(_p_) : (new));              \
>         |                       ^~~~~
>   include/linux/atomic/atomic-arch-fallback.h:70:29: note: in expansion of macro 'arch_cmpxchg'
>      70 | #define raw_cmpxchg_acquire arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2055:16: note: in expansion of macro 'raw_cmpxchg_acquire'
>    2055 |         return raw_cmpxchg_acquire(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>>> arch/arc/include/asm/cmpxchg.h:70:23: warning: unused variable '_old_'
>[-Wunused-variable]
>      70 |         unsigned long _old_ = (unsigned long)(0 ? *(_p_) : (old));              \
>         |                       ^~~~~
>   include/linux/atomic/atomic-arch-fallback.h:70:29: note: in expansion of macro 'arch_cmpxchg'
>      70 | #define raw_cmpxchg_acquire arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2055:16: note: in expansion of macro 'raw_cmpxchg_acquire'
>    2055 |         return raw_cmpxchg_acquire(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h: In function 'raw_atomic_cmpxchg_release':
>   arch/arc/include/asm/cmpxchg.h:80:23: error: '_o_' undeclared (first use in this function); did you mean '_p_'?
>      80 |         if (_prev_ == _o_)                                              \
>         |                       ^~~
>   include/linux/atomic/atomic-arch-fallback.h:82:29: note: in expansion of macro 'arch_cmpxchg'
>      82 | #define raw_cmpxchg_release arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2083:16: note: in expansion of macro 'raw_cmpxchg_release'
>    2083 |         return raw_cmpxchg_release(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>   arch/arc/include/asm/cmpxchg.h:81:24: error: '_n_' undeclared (first use in this function); did you mean '_p_'?
>      81 |                 *_p_ = _n_;                                             \
>         |                        ^~~
>   include/linux/atomic/atomic-arch-fallback.h:82:29: note: in expansion of macro 'arch_cmpxchg'
>      82 | #define raw_cmpxchg_release arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2083:16: note: in expansion of macro 'raw_cmpxchg_release'
>    2083 |         return raw_cmpxchg_release(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>>> arch/arc/include/asm/cmpxchg.h:71:23: warning: unused variable '_new_'
>[-Wunused-variable]
>      71 |         unsigned long _new_ = (unsigned long)(0 ? *(_p_) : (new));              \
>         |                       ^~~~~
>   include/linux/atomic/atomic-arch-fallback.h:82:29: note: in expansion of macro 'arch_cmpxchg'
>      82 | #define raw_cmpxchg_release arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2083:16: note: in expansion of macro 'raw_cmpxchg_release'
>    2083 |         return raw_cmpxchg_release(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>>> arch/arc/include/asm/cmpxchg.h:70:23: warning: unused variable '_old_'
>[-Wunused-variable]
>      70 |         unsigned long _old_ = (unsigned long)(0 ? *(_p_) : (old));              \
>         |                       ^~~~~
>   include/linux/atomic/atomic-arch-fallback.h:82:29: note: in expansion of macro 'arch_cmpxchg'
>      82 | #define raw_cmpxchg_release arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2083:16: note: in expansion of macro 'raw_cmpxchg_release'
>    2083 |         return raw_cmpxchg_release(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h: In function 'raw_atomic_cmpxchg_relaxed':
>   arch/arc/include/asm/cmpxchg.h:80:23: error: '_o_' undeclared (first use in this function); did you mean '_p_'?
>      80 |         if (_prev_ == _o_)                                              \
>         |                       ^~~
>   include/linux/atomic/atomic-arch-fallback.h:91:29: note: in expansion of macro 'arch_cmpxchg'
>      91 | #define raw_cmpxchg_relaxed arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2108:16: note: in expansion of macro 'raw_cmpxchg_relaxed'
>    2108 |         return raw_cmpxchg_relaxed(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>   arch/arc/include/asm/cmpxchg.h:81:24: error: '_n_' undeclared (first use in this function); did you mean '_p_'?
>      81 |                 *_p_ = _n_;                                             \
>         |                        ^~~
>   include/linux/atomic/atomic-arch-fallback.h:91:29: note: in expansion of macro 'arch_cmpxchg'
>      91 | #define raw_cmpxchg_relaxed arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2108:16: note: in expansion of macro 'raw_cmpxchg_relaxed'
>    2108 |         return raw_cmpxchg_relaxed(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>>> arch/arc/include/asm/cmpxchg.h:71:23: warning: unused variable '_new_'
>[-Wunused-variable]
>      71 |         unsigned long _new_ = (unsigned long)(0 ? *(_p_) : (new));              \
>         |                       ^~~~~
>   include/linux/atomic/atomic-arch-fallback.h:91:29: note: in expansion of macro 'arch_cmpxchg'
>      91 | #define raw_cmpxchg_relaxed arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2108:16: note: in expansion of macro 'raw_cmpxchg_relaxed'
>    2108 |         return raw_cmpxchg_relaxed(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>>> arch/arc/include/asm/cmpxchg.h:70:23: warning: unused variable '_old_'
>[-Wunused-variable]
>      70 |         unsigned long _old_ = (unsigned long)(0 ? *(_p_) : (old));              \
>         |                       ^~~~~
>   include/linux/atomic/atomic-arch-fallback.h:91:29: note: in expansion of macro 'arch_cmpxchg'
>      91 | #define raw_cmpxchg_relaxed arch_cmpxchg
>         |                             ^~~~~~~~~~~~
>   include/linux/atomic/atomic-arch-fallback.h:2108:16: note: in expansion of macro 'raw_cmpxchg_relaxed'
>    2108 |         return raw_cmpxchg_relaxed(&v->counter, old, new);
>         |                ^~~~~~~~~~~~~~~~~~~
>   make[3]: *** [scripts/Makefile.build:185: kernel/bounds.s] Error 1 shuffle=1050985161
>   make[3]: Target 'prepare' not remade because of errors.
>   make[2]: *** [Makefile:1425: prepare0] Error 2 shuffle=1050985161
>   make[2]: Target 'prepare' not remade because of errors.
>   make[1]: *** [Makefile:248: __sub-make] Error 2 shuffle=1050985161
>   make[1]: Target 'prepare' not remade because of errors.
>   make: *** [Makefile:248: __sub-make] Error 2 shuffle=1050985161
>   make: Target 'prepare' not remade because of errors.
>
>
>vim +/_new_ +71 arch/arc/include/asm/cmpxchg.h
>
>    66	
>    67	#define arch_cmpxchg(ptr, old, new)				        \
>    68	({									\
>    69		volatile __typeof__(ptr) _p_ = (ptr);				\
>  > 70		unsigned long _old_ = (unsigned long)(0 ? *(_p_) : (old));		\
>  > 71		unsigned long _new_ = (unsigned long)(0 ? *(_p_) : (new));		\
>    72		__typeof__(*(ptr)) _prev_;					\
>    73		unsigned long __flags;						\
>    74										\
>    75		/*								\
>    76		 * spin lock/unlock provide the needed smp_mb() before/after	\
>    77		 */								\
>    78		atomic_ops_lock(__flags);					\
>    79		_prev_ = *_p_;							\
>    80		if (_prev_ == _o_)						\
>    81			*_p_ = _n_;						\
>    82		atomic_ops_unlock(__flags);					\
>    83		_prev_;								\
>    84	})
>    85	
>
>--
>0-DAY CI Kernel Test Service
>https://github.com/intel/lkp-tests/wiki
Apparently nobody uses arc 
--- Thanks!
"I'm not a very positive person" - Linus torvalds



More information about the linux-snps-arc mailing list