* [peterz-queue:locking/core 5/6] kernel/locking/rwsem.c:1027:3: error: call to undeclared function 'LOCKEVENT_waiter_type'; ISO C99 and later do not support implicit function declarations
@ 2023-02-23 17:09 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-02-23 17:09 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: llvm, oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git locking/core
head: 6c17797b554c635c394d7de0ceb49b705d182340
commit: 425d19e8c6d9ec3d3f55b7497526947235cc8d77 [5/6] locking/rwsem: Unify wait loop
config: s390-buildonly-randconfig-r003-20230222 (https://download.01.org/0day-ci/archive/20230224/202302240131.eS42jjFi-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project db89896bbbd2251fff457699635acbbedeead27f)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=425d19e8c6d9ec3d3f55b7497526947235cc8d77
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue locking/core
git checkout 425d19e8c6d9ec3d3f55b7497526947235cc8d77
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=s390 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash kernel/locking/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202302240131.eS42jjFi-lkp@intel.com/
All errors (new ones prefixed by >>):
>> kernel/locking/rwsem.c:1027:3: error: call to undeclared function 'LOCKEVENT_waiter_type'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
lockevent_inc(waiter_type(waiter, rwsem_sleep_reader, rwsem_sleep_writer));
^
kernel/locking/lock_events.h:43:45: note: expanded from macro 'lockevent_inc'
#define lockevent_inc(ev) __lockevent_inc(LOCKEVENT_ ##ev, true)
^
<scratch space>:59:1: note: expanded from here
LOCKEVENT_waiter_type
^
>> kernel/locking/rwsem.c:1027:37: error: use of undeclared identifier 'rwsem_sleep_reader'
lockevent_inc(waiter_type(waiter, rwsem_sleep_reader, rwsem_sleep_writer));
^
>> kernel/locking/rwsem.c:1027:57: error: use of undeclared identifier 'rwsem_sleep_writer'
lockevent_inc(waiter_type(waiter, rwsem_sleep_reader, rwsem_sleep_writer));
^
kernel/locking/rwsem.c:1031:2: error: call to undeclared function 'LOCKEVENT_waiter_type'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
lockevent_inc(waiter_type(waiter, rwsem_rlock, rwsem_wlock));
^
kernel/locking/lock_events.h:43:45: note: expanded from macro 'lockevent_inc'
#define lockevent_inc(ev) __lockevent_inc(LOCKEVENT_ ##ev, true)
^
<scratch space>:63:1: note: expanded from here
LOCKEVENT_waiter_type
^
>> kernel/locking/rwsem.c:1031:36: error: use of undeclared identifier 'rwsem_rlock'
lockevent_inc(waiter_type(waiter, rwsem_rlock, rwsem_wlock));
^
>> kernel/locking/rwsem.c:1031:49: error: use of undeclared identifier 'rwsem_wlock'
lockevent_inc(waiter_type(waiter, rwsem_rlock, rwsem_wlock));
^
>> kernel/locking/rwsem.c:1038:36: error: use of undeclared identifier 'rwsem_rlock_fail'
lockevent_inc(waiter_type(waiter, rwsem_rlock_fail, rwsem_wlock_fail));
^
>> kernel/locking/rwsem.c:1038:54: error: use of undeclared identifier 'rwsem_wlock_fail'
lockevent_inc(waiter_type(waiter, rwsem_rlock_fail, rwsem_wlock_fail));
^
8 errors generated.
vim +/LOCKEVENT_waiter_type +1027 kernel/locking/rwsem.c
1002
1003 #define waiter_type(_waiter, _r, _w) \
1004 ((_waiter)->type == RWSEM_WAITING_FOR_READ ? (_r) : (_w))
1005
1006 static __always_inline struct rw_semaphore *
1007 rwsem_waiter_wait(struct rw_semaphore *sem, struct rwsem_waiter *waiter, int state)
1008 {
1009 trace_contention_begin(sem, waiter_type(waiter, LCB_F_READ, LCB_F_WRITE));
1010
1011 /* wait to be given the lock */
1012 for (;;) {
1013 set_current_state(state);
1014 if (!smp_load_acquire(&waiter->task)) {
1015 /* Matches rwsem_waiter_wake()'s smp_store_release(). */
1016 break;
1017 }
1018 if (signal_pending_state(state, current)) {
1019 raw_spin_lock_irq(&sem->wait_lock);
1020 if (waiter->task)
1021 goto out_nolock;
1022 raw_spin_unlock_irq(&sem->wait_lock);
1023 /* Ordered by sem->wait_lock against rwsem_mark_wake(). */
1024 break;
1025 }
1026 schedule_preempt_disabled();
> 1027 lockevent_inc(waiter_type(waiter, rwsem_sleep_reader, rwsem_sleep_writer));
1028 }
1029
1030 __set_current_state(TASK_RUNNING);
> 1031 lockevent_inc(waiter_type(waiter, rwsem_rlock, rwsem_wlock));
1032 trace_contention_end(sem, 0);
1033 return sem;
1034
1035 out_nolock:
1036 rwsem_del_wake_waiter(sem, waiter);
1037 __set_current_state(TASK_RUNNING);
> 1038 lockevent_inc(waiter_type(waiter, rwsem_rlock_fail, rwsem_wlock_fail));
1039 trace_contention_end(sem, -EINTR);
1040 return ERR_PTR(-EINTR);
1041 }
1042
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-02-23 17:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-23 17:09 [peterz-queue:locking/core 5/6] kernel/locking/rwsem.c:1027:3: error: call to undeclared function 'LOCKEVENT_waiter_type'; ISO C99 and later do not support implicit function declarations kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.