tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   6bd343537461b57f3efe5dfc5fc193a232dfef1e
commit: d4f26ed66a53be57567bf71d60e80a116cec34e1 [4535/6266] ARC: Emulate 
one-byte cmpxchg
config: arc-randconfig-r016-20230816 
(https://download.01.org/0day-ci/archive/20240416/202404160503.zfip77to-...@intel.com/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20240416/202404160503.zfip77to-...@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 <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202404160503.zfip77to-...@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/bitops.h:68,
                    from include/linux/log2.h:12,
                    from kernel/bounds.c:13:
   arch/arc/include/asm/bitops.h: In function '__fls':
   arch/arc/include/asm/bitops.h:137:17: error: implicit declaration of 
function '__builtin_arc_fls'; did you mean '__builtin_arc_flag'? 
[-Werror=implicit-function-declaration]
     137 |         return  __builtin_arc_fls(x);
         |                 ^~~~~~~~~~~~~~~~~
         |                 __builtin_arc_flag
   In file included from arch/arc/include/asm/atomic.h:31,
                    from include/linux/atomic.h:7,
                    from include/asm-generic/bitops/lock.h:5,
                    from arch/arc/include/asm/bitops.h:188:
   arch/arc/include/asm/atomic64-arcv2.h: At top level:
   arch/arc/include/asm/atomic64-arcv2.h:13:3: error: conflicting types for 
'atomic64_t'; have 'struct <anonymous>'
      13 | } atomic64_t;
         |   ^~~~~~~~~~
   In file included from include/linux/page-flags.h:9,
                    from kernel/bounds.c:10:
   include/linux/types.h:184:3: note: previous declaration of 'atomic64_t' with 
type 'atomic64_t'
     184 | } atomic64_t;
         |   ^~~~~~~~~~
   In file included from arch/arc/include/asm/atomic.h:13:
   include/linux/atomic/atomic-arch-fallback.h: In function 
'raw_atomic_cmpxchg':
>> arch/arc/include/asm/cmpxchg.h:73:27: error: implicit declaration of 
>> function 'cmpxchg_emu_u8' [-Werror=implicit-function-declaration]
      73 |                 __flags = cmpxchg_emu_u8((volatile u8 *)_p_, _o_, 
_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);
         |                ^~~~~~~~~~~
   In file included from arch/arc/include/uapi/asm/byteorder.h:14,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/arc/include/asm/bitops.h:192:
   include/linux/byteorder/big_endian.h: At top level:
   include/linux/byteorder/big_endian.h:8:2: warning: #warning inconsistent 
configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
       8 | #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
         |  ^~~~~~~
   cc1: some warnings being treated as errors
   make[3]: *** [scripts/Makefile.build:117: kernel/bounds.s] Error 1
   make[3]: Target 'prepare' not remade because of errors.
   make[2]: *** [Makefile:1197: prepare0] Error 2
   make[2]: Target 'prepare' not remade because of errors.
   make[1]: *** [Makefile:240: __sub-make] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [Makefile:240: __sub-make] Error 2
   make: Target 'prepare' not remade because of errors.


vim +/cmpxchg_emu_u8 +73 arch/arc/include/asm/cmpxchg.h

    62  
    63  #define arch_cmpxchg(ptr, old, new)                                     
\
    64  ({                                                                      
\
    65          volatile __typeof__(ptr) _p_ = (ptr);                           
\
    66          __typeof__(*(ptr)) _o_ = (old);                                 
\
    67          __typeof__(*(ptr)) _n_ = (new);                                 
\
    68          __typeof__(*(ptr)) _prev_;                                      
\
    69          unsigned long __flags;                                          
\
    70                                                                          
\
    71          switch(sizeof((_p_))) {                                         
\
    72          case 1:                                                         
\
  > 73                  __flags = cmpxchg_emu_u8((volatile u8 *)_p_, _o_, _n_); 
\
    74                  _prev_ = (__typeof__(*(ptr)))__flags;                   
\
    75                  break;                                                  
\
    76                  break;                                                  
\
    77          case 4:                                                         
\
    78                  /*                                                      
\
    79                   * spin lock/unlock provide the needed smp_mb()         
\
    80                   * before/after                                         
\
    81                   */                                                     
\
    82                  atomic_ops_lock(__flags);                               
\
    83                  _prev_ = *_p_;                                          
\
    84                  if (_prev_ == _o_)                                      
\
    85                          *_p_ = _n_;                                     
\
    86                  atomic_ops_unlock(__flags);                             
\
    87                  break;                                                  
\
    88          default:                                                        
\
    89                  BUILD_BUG();                                            
\
    90          }                                                               
\
    91                                                                          
\
    92          _prev_;                                                         
\
    93  })
    94  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

Reply via email to