lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Sun, 5 Jun 2022 05:49:43 +0800
From:   kernel test robot <lkp@...el.com>
To:     Frederic Weisbecker <frederic@...nel.org>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [frederic-dynticks:rcu/context-tracking-v4 9/20]
 kernel/softirq.c:610: undefined reference to `ct_irq_enter'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git rcu/context-tracking-v4
head:   77493b1db618c61dec140cbab830832f77203d69
commit: ede17b80373d0c3e886b3b4d9533f6c12cf1e799 [9/20] context_tracking: Take IRQ eqs entrypoints over RCU
config: x86_64-randconfig-a008 (https://download.01.org/0day-ci/archive/20220605/202206050548.DSjyYju7-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-1) 11.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git/commit/?id=ede17b80373d0c3e886b3b4d9533f6c12cf1e799
        git remote add frederic-dynticks https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
        git fetch --no-tags frederic-dynticks rcu/context-tracking-v4
        git checkout ede17b80373d0c3e886b3b4d9533f6c12cf1e799
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

   vmlinux.o: warning: objtool: pvh_start_xen()+0x0: unreachable instruction
   ld: vmlinux.o: in function `irq_enter':
>> kernel/softirq.c:610: undefined reference to `ct_irq_enter'
   ld: vmlinux.o: in function `irq_exit':
>> kernel/softirq.c:662: undefined reference to `ct_irq_exit'
   ld: vmlinux.o: in function `trace_console_rcuidle':
>> include/trace/events/printk.h:10: undefined reference to `ct_irq_enter_irqson'
>> ld: include/trace/events/printk.h:10: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `bc_set_next':
>> kernel/time/tick-broadcast-hrtimer.c:64: undefined reference to `ct_irq_enter_irqson'
>> ld: kernel/time/tick-broadcast-hrtimer.c:64: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_irq_disable_rcuidle':
>> include/trace/events/preemptirq.h:36: undefined reference to `ct_irq_enter_irqson'
>> ld: include/trace/events/preemptirq.h:36: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_irq_enable_rcuidle':
   include/trace/events/preemptirq.h:40: undefined reference to `ct_irq_enter_irqson'
   ld: include/trace/events/preemptirq.h:40: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_clk_disable_rcuidle':
>> include/trace/events/clk.h:46: undefined reference to `ct_irq_enter_irqson'
>> ld: include/trace/events/clk.h:46: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_clk_disable_complete_rcuidle':
   include/trace/events/clk.h:53: undefined reference to `ct_irq_enter_irqson'
   ld: include/trace/events/clk.h:53: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_clk_enable_rcuidle':
   include/trace/events/clk.h:32: undefined reference to `ct_irq_enter_irqson'
   ld: include/trace/events/clk.h:32: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `trace_clk_enable_complete_rcuidle':
   include/trace/events/clk.h:39: undefined reference to `ct_irq_enter_irqson'
   ld: include/trace/events/clk.h:39: undefined reference to `ct_irq_exit_irqson'
   ld: vmlinux.o: in function `irqentry_exit':
>> kernel/entry/common.c:421: undefined reference to `ct_irq_exit'
>> ld: kernel/entry/common.c:439: undefined reference to `ct_irq_exit'


vim +610 kernel/softirq.c

   604	
   605	/**
   606	 * irq_enter - Enter an interrupt context including RCU update
   607	 */
   608	void irq_enter(void)
   609	{
 > 610		ct_irq_enter();
   611		irq_enter_rcu();
   612	}
   613	
   614	static inline void tick_irq_exit(void)
   615	{
   616	#ifdef CONFIG_NO_HZ_COMMON
   617		int cpu = smp_processor_id();
   618	
   619		/* Make sure that timer wheel updates are propagated */
   620		if ((idle_cpu(cpu) && !need_resched()) || tick_nohz_full_cpu(cpu)) {
   621			if (!in_hardirq())
   622				tick_nohz_irq_exit();
   623		}
   624	#endif
   625	}
   626	
   627	static inline void __irq_exit_rcu(void)
   628	{
   629	#ifndef __ARCH_IRQ_EXIT_IRQS_DISABLED
   630		local_irq_disable();
   631	#else
   632		lockdep_assert_irqs_disabled();
   633	#endif
   634		account_hardirq_exit(current);
   635		preempt_count_sub(HARDIRQ_OFFSET);
   636		if (!in_interrupt() && local_softirq_pending())
   637			invoke_softirq();
   638	
   639		tick_irq_exit();
   640	}
   641	
   642	/**
   643	 * irq_exit_rcu() - Exit an interrupt context without updating RCU
   644	 *
   645	 * Also processes softirqs if needed and possible.
   646	 */
   647	void irq_exit_rcu(void)
   648	{
   649		__irq_exit_rcu();
   650		 /* must be last! */
   651		lockdep_hardirq_exit();
   652	}
   653	
   654	/**
   655	 * irq_exit - Exit an interrupt context, update RCU and lockdep
   656	 *
   657	 * Also processes softirqs if needed and possible.
   658	 */
   659	void irq_exit(void)
   660	{
   661		__irq_exit_rcu();
 > 662		ct_irq_exit();
   663		 /* must be last! */
   664		lockdep_hardirq_exit();
   665	}
   666	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ