tree:
https://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git softirq
head: 383be10736ef5b48c0914e89c6e0a61b78623dda
commit: 1e60e1b199c141e5d1757743e19310d2ba5fecde [7/20] tasklets: Prevent
tasklet_unlock_spin_wait() deadlock on RT
config: x86_64-rhel-7.6-kselftests (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
#
https://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git/commit/?id...
git remote add tglx-devel
https://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git
git fetch --no-tags tglx-devel softirq
git checkout 1e60e1b199c141e5d1757743e19310d2ba5fecde
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
> kernel/softirq.c:624:6: error: redefinition of
'tasklet_unlock_spin_wait'
624 | void tasklet_unlock_spin_wait(struct
tasklet_struct *t)
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/kernel_stat.h:9,
from kernel/softirq.c:13:
include/linux/interrupt.h:670:20: note: previous definition of
'tasklet_unlock_spin_wait' was here
670 | static inline void tasklet_unlock_spin_wait(struct tasklet_struct *t)
| ^~~~~~~~~~~~~~~~~~~~~~~~
vim +/tasklet_unlock_spin_wait +624 kernel/softirq.c
618
619 #if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT)
620 /*
621 * Do not use in new code. There is no real reason to invoke this from
622 * atomic contexts.
623 */
624 void tasklet_unlock_spin_wait(struct tasklet_struct *t)
625 {
626 while (test_bit(TASKLET_STATE_RUN, &(t)->state)) {
627 if (IS_ENABLED(CONFIG_PREEMPT_RT)) {
628 /*
629 * Prevent a live lock when current preempted soft
630 * interrupt processing or prevents ksoftirqd from
631 * running. If the tasklet runs on a different CPU
632 * then this has no effect other than doing the BH
633 * disable/enable dance for nothing.
634 */
635 local_bh_disable();
636 local_bh_enable();
637 } else {
638 cpu_relax();
639 }
640 }
641 }
642 EXPORT_SYMBOL(tasklet_unlock_spin_wait);
643 #endif
644
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org