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>] [<thread-prev] [day] [month] [year] [list]
Date:   Sun, 24 Mar 2019 16:45:45 -0700
From:   "Paul E. McKenney" <paulmck@...ux.ibm.com>
To:     kbuild test robot <lkp@...el.com>
Cc:     Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
        kbuild-all@...org, linux-kernel@...r.kernel.org
Subject: Re: [rcu:dev.2019.03.20b 59/83] kernel/rcu/tree_plugin.h:612:8:
 error: 'rcu_softirq_enabled' undeclared; did you mean
 'trace_softirqs_enabled'?

On Sat, Mar 23, 2019 at 10:16:23AM +0800, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2019.03.20b
> head:   6d4434b4b4df791620743178e1419de882b44c7b
> commit: d0f41d341df0520e900cac03de05bbbd11abdcd9 [59/83] rcu: Enable elimination of Tree-RCU softirq processing
> config: i386-randconfig-x002-201911 (attached as .config)
> compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
> reproduce:
>         git checkout d0f41d341df0520e900cac03de05bbbd11abdcd9
>         # save the attached .config to linux build tree
>         make ARCH=i386 
> 
> Note: the rcu/dev.2019.03.20b HEAD 6d4434b4b4df791620743178e1419de882b44c7b builds fine.
>       It only hurts bisectibility.
> 
> All errors (new ones prefixed by >>):
> 
>    In file included from kernel/rcu/tree.c:3489:0:
>    kernel/rcu/tree_plugin.h: In function 'rcu_read_unlock_special':
> >> kernel/rcu/tree_plugin.h:612:8: error: 'rcu_softirq_enabled' undeclared (first use in this function); did you mean 'trace_softirqs_enabled'?
>        if (rcu_softirq_enabled)
>            ^~~~~~~~~~~~~~~~~~~
>            trace_softirqs_enabled
>    kernel/rcu/tree_plugin.h:612:8: note: each undeclared identifier is reported only once for each function it appears in

This commit has been superseced by 132e805a28dc, which I believe has fixed
this.  (Famous last words!)

							Thanx, Paul

> vim +612 kernel/rcu/tree_plugin.h
> 
>    588	
>    589	/*
>    590	 * Handle special cases during rcu_read_unlock(), such as needing to
>    591	 * notify RCU core processing or task having blocked during the RCU
>    592	 * read-side critical section.
>    593	 */
>    594	static void rcu_read_unlock_special(struct task_struct *t)
>    595	{
>    596		unsigned long flags;
>    597		bool preempt_bh_were_disabled =
>    598				!!(preempt_count() & (PREEMPT_MASK | SOFTIRQ_MASK));
>    599		bool irqs_were_disabled;
>    600	
>    601		/* NMI handlers cannot block and cannot safely manipulate state. */
>    602		if (in_nmi())
>    603			return;
>    604	
>    605		local_irq_save(flags);
>    606		irqs_were_disabled = irqs_disabled_flags(flags);
>    607		if (preempt_bh_were_disabled || irqs_were_disabled) {
>    608			WRITE_ONCE(t->rcu_read_unlock_special.b.exp_hint, false);
>    609			/* Need to defer quiescent state until everything is enabled. */
>    610			if (irqs_were_disabled) {
>    611				/* Enabling irqs does not reschedule, so... */
>  > 612				if (rcu_softirq_enabled)
>    613					raise_softirq_irqoff(RCU_SOFTIRQ);
>    614				else
>    615					invoke_rcu_core();
>    616			} else {
>    617				/* Enabling BH or preempt does reschedule, so... */
>    618				set_tsk_need_resched(current);
>    619				set_preempt_need_resched();
>    620			}
>    621			local_irq_restore(flags);
>    622			return;
>    623		}
>    624		WRITE_ONCE(t->rcu_read_unlock_special.b.exp_hint, false);
>    625		rcu_preempt_deferred_qs_irqrestore(t, flags);
>    626	}
>    627	
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ