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:   Thu, 30 May 2019 10:21:22 -0700
From:   "Paul E. McKenney" <paulmck@...ux.ibm.com>
To:     kbuild test robot <lkp@...el.com>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org
Subject: Re: [rcu:test 69/69] arch/x86/include/asm/irqflags.h:41:2: warning:
 'flags' may be used uninitialized in this function

On Fri, May 31, 2019 at 12:35:01AM +0800, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git test
> head:   685a26bc60076305987bf06cfd1269e5e4094c73
> commit: 685a26bc60076305987bf06cfd1269e5e4094c73 [69/69] rcu/nocb: Avoid ->nocb_lock capture by corresponding CPU
> config: x86_64-randconfig-x009-201921 (attached as .config)
> compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
> reproduce:
>         git checkout 685a26bc60076305987bf06cfd1269e5e4094c73
>         # save the attached .config to linux build tree
>         make ARCH=x86_64 
> 
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@...el.com>
> 
> Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
> http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

This is a false positive.  The return value of rcu_segcblist_is_offloaded()
for a given CPU cannot change post-boot.  (Famous last words!)

								Thanx, Paul

> All warnings (new ones prefixed by >>):
> 
>    In file included from include/linux/irqflags.h:16:0,
>                     from arch/x86/include/asm/processor.h:33,
>                     from arch/x86/include/asm/cpufeature.h:5,
>                     from arch/x86/include/asm/thread_info.h:53,
>                     from include/linux/thread_info.h:38,
>                     from arch/x86/include/asm/preempt.h:7,
>                     from include/linux/preempt.h:78,
>                     from include/linux/spinlock.h:51,
>                     from kernel/rcu/tree.c:23:
>    kernel/rcu/tree_plugin.h: In function 'rcu_nocb_gp_kthread':
> >> arch/x86/include/asm/irqflags.h:41:2: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
>      asm volatile("push %0 ; popf"
>      ^~~
>    In file included from kernel/rcu/tree.c:3519:0:
>    kernel/rcu/tree_plugin.h:1719:16: note: 'flags' was declared here
>      unsigned long flags;
>                    ^~~~~
>    kernel/rcu/tree_plugin.h: In function 'do_nocb_deferred_wakeup_common':
>    kernel/rcu/tree_plugin.h:1891:2: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
>      wake_nocb_gp(rdp, ndw == RCU_NOCB_WAKE_FORCE, flags);
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --
>    In file included from include/linux/irqflags.h:16:0,
>                     from arch/x86/include/asm/processor.h:33,
>                     from arch/x86/include/asm/cpufeature.h:5,
>                     from arch/x86/include/asm/thread_info.h:53,
>                     from include/linux/thread_info.h:38,
>                     from arch/x86/include/asm/preempt.h:7,
>                     from include/linux/preempt.h:78,
>                     from include/linux/spinlock.h:51,
>                     from kernel//rcu/tree.c:23:
>    kernel//rcu/tree_plugin.h: In function 'rcu_nocb_gp_kthread':
> >> arch/x86/include/asm/irqflags.h:41:2: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
>      asm volatile("push %0 ; popf"
>      ^~~
>    In file included from kernel//rcu/tree.c:3519:0:
>    kernel//rcu/tree_plugin.h:1719:16: note: 'flags' was declared here
>      unsigned long flags;
>                    ^~~~~
>    kernel//rcu/tree_plugin.h: In function 'do_nocb_deferred_wakeup_common':
>    kernel//rcu/tree_plugin.h:1891:2: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
>      wake_nocb_gp(rdp, ndw == RCU_NOCB_WAKE_FORCE, flags);
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> vim +/flags +41 arch/x86/include/asm/irqflags.h
> 
> 6abcd98f include/asm-x86/irqflags.h      Glauber de Oliveira Costa 2008-01-30  37  
> 1f59a458 arch/x86/include/asm/irqflags.h Nick Desaulniers          2018-08-27  38  extern inline void native_restore_fl(unsigned long flags);
> 1f59a458 arch/x86/include/asm/irqflags.h Nick Desaulniers          2018-08-27  39  extern inline void native_restore_fl(unsigned long flags)
> 6abcd98f include/asm-x86/irqflags.h      Glauber de Oliveira Costa 2008-01-30  40  {
> cf7f7191 include/asm-x86/irqflags.h      Joe Perches               2008-03-23 @41  	asm volatile("push %0 ; popf"
> 6abcd98f include/asm-x86/irqflags.h      Glauber de Oliveira Costa 2008-01-30  42  		     : /* no output */
> 6abcd98f include/asm-x86/irqflags.h      Glauber de Oliveira Costa 2008-01-30  43  		     :"g" (flags)
> cf7f7191 include/asm-x86/irqflags.h      Joe Perches               2008-03-23  44  		     :"memory", "cc");
> 6abcd98f include/asm-x86/irqflags.h      Glauber de Oliveira Costa 2008-01-30  45  }
> 6abcd98f include/asm-x86/irqflags.h      Glauber de Oliveira Costa 2008-01-30  46  
> 
> :::::: The code at line 41 was first introduced by commit
> :::::: cf7f7191cf20011e47243b594e433275a6db811b include/asm-x86/irqflags.h: checkpatch cleanups - formatting only
> 
> :::::: TO: Joe Perches <joe@...ches.com>
> :::::: CC: Ingo Molnar <mingo@...e.hu>
> 
> ---
> 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