On Wed, Dec 23, 2020 at 11:14:48PM +0800, kernel test robot wrote: > Hi Paul, > > FYI, the error/warning still remains. > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > head: 614cb5894306cfa2c7d9b6168182876ff5948735 > commit: b38f57c1fe64276773b124dffb0a139cc32ab3cb rcu-tasks: Allow rcu_read_unlock_trace() under scheduler locks > date: 8 months ago > config: h8300-randconfig-s032-20201220 (attached as .config) > compiler: h8300-linux-gcc (GCC) 9.3.0 > reproduce: > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # apt-get install sparse > # sparse version: v0.6.3-184-g1b896707-dirty > # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b38f57c1fe64276773b124dffb0a139cc32ab3cb > git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git > git fetch --no-tags linus master > git checkout b38f57c1fe64276773b124dffb0a139cc32ab3cb > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=h8300 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp****@intel*****> > > All errors (new ones prefixed by >>): > > h8300-linux-ld: section .init.text LMA [000000000043a160,0000000000452569] overlaps section .rodata LMA [00000000003ff420,000000000047df2f] > h8300-linux-ld: section .data VMA [0000000000400000,000000000043a15f] overlaps section .rodata VMA [00000000003ff420,000000000047df2f] > h8300-linux-ld: section __ksymtab VMA [000000000047df30,000000000048611f] overlaps section .bss VMA [000000000045ebd0,000000000056a053] > h8300-linux-ld: kernel/rcu/update.o: in function `rcu_read_unlock_trace_special': > >> update.c:(.text+0x8f9): undefined reference to `irq_work_queue' And despite my "select IRQ_WORK", your .config file does not have CONFIG_IRQ_WORK. As it stands, Tasks Trace RCU needs irq_work_queue() in order to defer a wakeup to a point in the code where it is safe to do a wakeup. If h8300 does not support irq_work_queue(), then h8300 should not try to use Tasks Trace RCU. I could add something like a BUILD_BUG_ON(!IS_ENABLED(CONFIG_IRQ_WORK)) in order to make this restriction official. Adding the H8300 people on CC for their thoughts. Thanx, Paul