tree: https://github.com/ammarfaizi2/linux-block paulmck/linux-rcu/dev.2022.11.18a head: 7831c47ed19bac29a16088dc2511c9df012ff128 commit: 7831c47ed19bac29a16088dc2511c9df012ff128 [48/48] rcu: Make SRCU mandatory config: i386-randconfig-a015 compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) 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 # https://github.com/ammarfaizi2/linux-block/commit/7831c47ed19bac29a16088dc2511c9df012ff128 git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block git fetch --no-tags ammarfaizi2-block paulmck/linux-rcu/dev.2022.11.18a git checkout 7831c47ed19bac29a16088dc2511c9df012ff128 # 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=i386 SHELL=/bin/bash kernel/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from kernel/rcu/update.c:605: kernel/rcu/tasks.h:256:3: error: implicit declaration of function 'raw_spin_lock_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_rcu_node(rtpcp); // irqs already disabled. ^ kernel/rcu/tasks.h:264:3: error: implicit declaration of function 'raw_spin_unlock_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_rcu_node(rtpcp); // irqs remain disabled. ^ kernel/rcu/tasks.h:264:3: note: did you mean 'raw_spin_lock_rcu_node'? kernel/rcu/tasks.h:256:3: note: 'raw_spin_lock_rcu_node' declared here raw_spin_lock_rcu_node(rtpcp); // irqs already disabled. ^ kernel/rcu/tasks.h:299:7: error: implicit declaration of function 'raw_spin_trylock_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] if (!raw_spin_trylock_rcu_node(rtpcp)) { // irqs already disabled. ^ kernel/rcu/tasks.h:300:3: error: implicit declaration of function 'raw_spin_lock_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_rcu_node(rtpcp); // irqs already disabled. ^ kernel/rcu/tasks.h:311:3: error: implicit declaration of function 'raw_spin_unlock_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_rcu_node(rtpcp); // irqs remain disabled. ^ kernel/rcu/tasks.h:313:3: error: implicit declaration of function 'raw_spin_lock_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_rcu_node(rtpcp); // irqs already disabled. ^ kernel/rcu/tasks.h:317:2: error: implicit declaration of function 'raw_spin_unlock_irqrestore_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_irqrestore_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:317:2: note: did you mean '_raw_spin_unlock_irqrestore'? include/linux/spinlock_api_smp.h:43:1: note: '_raw_spin_unlock_irqrestore' declared here _raw_spin_unlock_irqrestore(raw_spinlock_t *lock, unsigned long flags) ^ In file included from kernel/rcu/update.c:605: kernel/rcu/tasks.h:369:3: error: implicit declaration of function 'raw_spin_lock_irqsave_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:369:3: note: did you mean '_raw_spin_lock_irqsave_nested'? include/linux/spinlock_api_smp.h:35:1: note: '_raw_spin_lock_irqsave_nested' declared here _raw_spin_lock_irqsave_nested(raw_spinlock_t *lock, int subclass) ^ In file included from kernel/rcu/update.c:605: kernel/rcu/tasks.h:372:3: error: implicit declaration of function 'raw_spin_unlock_irqrestore_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_irqrestore_rcu_node(rtpcp, flags); ^ >> kernel/rcu/tasks.h:369:41: warning: variable 'flags' is uninitialized when used here [-Wuninitialized] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^~~~~ kernel/rcu/tasks.h:351:21: note: initialize the variable 'flags' to silence this warning unsigned long flags; ^ = 0 kernel/rcu/tasks.h:398:3: error: implicit declaration of function 'raw_spin_lock_irqsave_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:412:3: error: implicit declaration of function 'raw_spin_unlock_irqrestore_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_irqrestore_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:398:41: warning: variable 'flags' is uninitialized when used here [-Wuninitialized] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^~~~~ kernel/rcu/tasks.h:386:21: note: initialize the variable 'flags' to silence this warning unsigned long flags; ^ = 0 kernel/rcu/tasks.h:475:2: error: implicit declaration of function 'raw_spin_lock_irqsave_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:478:2: error: implicit declaration of function 'raw_spin_unlock_irqrestore_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_irqrestore_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:475:40: warning: variable 'flags' is uninitialized when used here [-Wuninitialized] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^~~~~ kernel/rcu/tasks.h:455:21: note: initialize the variable 'flags' to silence this warning unsigned long flags; ^ = 0 kernel/rcu/tasks.h:1265:3: error: implicit declaration of function 'raw_spin_lock_irqsave_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:1268:3: error: implicit declaration of function 'raw_spin_unlock_irqrestore_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_irqrestore_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:1265:41: warning: variable 'flags' is uninitialized when used here [-Wuninitialized] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^~~~~ kernel/rcu/tasks.h:1246:21: note: initialize the variable 'flags' to silence this warning unsigned long flags; ^ = 0 kernel/rcu/tasks.h:1282:2: error: implicit declaration of function 'raw_spin_lock_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_rcu_node(rtpcp); // irqs already disabled ^ kernel/rcu/tasks.h:1288:2: error: implicit declaration of function 'raw_spin_unlock_irqrestore_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_irqrestore_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:1511:3: error: implicit declaration of function 'raw_spin_lock_irqsave_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ^ kernel/rcu/tasks.h:1518:4: error: implicit declaration of function 'raw_spin_unlock_irqrestore_rcu_node' is invalid in C99 [-Werror,-Wimplicit-function-declaration] raw_spin_unlock_irqrestore_rcu_node(rtpcp, flags); ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 4 warnings and 20 errors generated. vim +/flags +369 kernel/rcu/tasks.h ce9b1c667f03e0 Paul E. McKenney 2021-11-11 345 ce9b1c667f03e0 Paul E. McKenney 2021-11-11 346 // Wait for all in-flight callbacks for the specified RCU Tasks flavor. ce9b1c667f03e0 Paul E. McKenney 2021-11-11 347 // Operates in a manner similar to rcu_barrier(). ce9b1c667f03e0 Paul E. McKenney 2021-11-11 348 static void rcu_barrier_tasks_generic(struct rcu_tasks *rtp) ce9b1c667f03e0 Paul E. McKenney 2021-11-11 349 { ce9b1c667f03e0 Paul E. McKenney 2021-11-11 350 int cpu; ce9b1c667f03e0 Paul E. McKenney 2021-11-11 351 unsigned long flags; ce9b1c667f03e0 Paul E. McKenney 2021-11-11 352 struct rcu_tasks_percpu *rtpcp; ce9b1c667f03e0 Paul E. McKenney 2021-11-11 353 unsigned long s = rcu_seq_snap(&rtp->barrier_q_seq); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 354 ce9b1c667f03e0 Paul E. McKenney 2021-11-11 355 mutex_lock(&rtp->barrier_q_mutex); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 356 if (rcu_seq_done(&rtp->barrier_q_seq, s)) { ce9b1c667f03e0 Paul E. McKenney 2021-11-11 357 smp_mb(); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 358 mutex_unlock(&rtp->barrier_q_mutex); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 359 return; ce9b1c667f03e0 Paul E. McKenney 2021-11-11 360 } ce9b1c667f03e0 Paul E. McKenney 2021-11-11 361 rcu_seq_start(&rtp->barrier_q_seq); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 362 init_completion(&rtp->barrier_q_completion); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 363 atomic_set(&rtp->barrier_q_count, 2); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 364 for_each_possible_cpu(cpu) { 2cee0789b458af Paul E. McKenney 2021-11-29 365 if (cpu >= smp_load_acquire(&rtp->percpu_dequeue_lim)) ce9b1c667f03e0 Paul E. McKenney 2021-11-11 366 break; ce9b1c667f03e0 Paul E. McKenney 2021-11-11 367 rtpcp = per_cpu_ptr(rtp->rtpcpu, cpu); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 368 rtpcp->barrier_q_head.func = rcu_barrier_tasks_generic_cb; ce9b1c667f03e0 Paul E. McKenney 2021-11-11 @369 raw_spin_lock_irqsave_rcu_node(rtpcp, flags); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 370 if (rcu_segcblist_entrain(&rtpcp->cblist, &rtpcp->barrier_q_head)) ce9b1c667f03e0 Paul E. McKenney 2021-11-11 371 atomic_inc(&rtp->barrier_q_count); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 372 raw_spin_unlock_irqrestore_rcu_node(rtpcp, flags); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 373 } ce9b1c667f03e0 Paul E. McKenney 2021-11-11 374 if (atomic_sub_and_test(2, &rtp->barrier_q_count)) ce9b1c667f03e0 Paul E. McKenney 2021-11-11 375 complete(&rtp->barrier_q_completion); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 376 wait_for_completion(&rtp->barrier_q_completion); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 377 rcu_seq_end(&rtp->barrier_q_seq); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 378 mutex_unlock(&rtp->barrier_q_mutex); ce9b1c667f03e0 Paul E. McKenney 2021-11-11 379 } ce9b1c667f03e0 Paul E. McKenney 2021-11-11 380 :::::: The code at line 369 was first introduced by commit :::::: ce9b1c667f03e0aa30d3eb69d0932e010d131c49 rcu-tasks: Make rcu_barrier_tasks*() handle multiple callback queues :::::: TO: Paul E. McKenney :::::: CC: Paul E. McKenney -- 0-DAY CI Kernel Test Service https://01.org/lkp