[linux-next:master 14180/15478] lib/objpool.c:169:12: error: call to undeclared function 'arch_cmpxchg_local'; ISO C99 and later do not support implicit function declarations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   66f1e1ea3548378ff6387b1ce0b40955d54e86aa
commit: 49c19389876002dc46d0c1344c056a6366745d07 [14180/15478] lib,kprobes: using try_cmpxchg_local in objpool_push
config: hexagon-randconfig-r016-20230107 (https://download.01.org/0day-ci/archive/20231027/202310272207.tLPflya4-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231027/202310272207.tLPflya4-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310272207.tLPflya4-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

>> lib/objpool.c:169:12: error: call to undeclared function 'arch_cmpxchg_local'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           } while (!try_cmpxchg_local(&slot->tail, &tail, tail + 1));
                     ^
   include/linux/atomic/atomic-instrumented.h:4980:2: note: expanded from macro 'try_cmpxchg_local'
           raw_try_cmpxchg_local(__ai_ptr, __ai_oldp, __VA_ARGS__); \
           ^
   include/linux/atomic/atomic-arch-fallback.h:392:9: note: expanded from macro 'raw_try_cmpxchg_local'
           ___r = raw_cmpxchg_local((_ptr), ___o, (_new)); \
                  ^
   include/linux/atomic/atomic-arch-fallback.h:384:27: note: expanded from macro 'raw_cmpxchg_local'
   #define raw_cmpxchg_local arch_cmpxchg_local
                             ^
   1 error generated.


vim +/arch_cmpxchg_local +169 lib/objpool.c

   154	
   155	/* adding object to slot, abort if the slot was already full */
   156	static inline int
   157	objpool_try_add_slot(void *obj, struct objpool_head *pool, int cpu)
   158	{
   159		struct objpool_slot *slot = pool->cpu_slots[cpu];
   160		uint32_t head, tail;
   161	
   162		/* loading tail and head as a local snapshot, tail first */
   163		tail = READ_ONCE(slot->tail);
   164	
   165		do {
   166			head = READ_ONCE(slot->head);
   167			/* fault caught: something must be wrong */
   168			WARN_ON_ONCE(tail - head > pool->nr_objs);
 > 169		} while (!try_cmpxchg_local(&slot->tail, &tail, tail + 1));
   170	
   171		/* now the tail position is reserved for the given obj */
   172		WRITE_ONCE(slot->entries[tail & slot->mask], obj);
   173		/* update sequence to make this obj available for pop() */
   174		smp_store_release(&slot->last, tail + 1);
   175	
   176		return 0;
   177	}
   178	

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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux