Fw: [rcu:rcu/next 41/41] arch/x86/kvm/vmx.c:11022:2: error: function '_r_a_p__v' is initialized like a variable
From: Paul E. McKenney
Date: Sun May 01 2016 - 22:52:50 EST
Like this sort of compiler bug, maybe. Compiles just fine on my laptop.
Thoughts?
Thanx, Paul
----- Forwarded message from kbuild test robot <fengguang.wu@xxxxxxxxx> -----
Date: Mon, 2 May 2016 10:12:38 +0800
From: kbuild test robot <fengguang.wu@xxxxxxxxx>
Cc: kbuild-all@xxxxxx, "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
Subject: [rcu:rcu/next 41/41] arch/x86/kvm/vmx.c:11022:2: error: function
'_r_a_p__v' is initialized like a variable
tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/next
head: 16d7afcaa5301f8243a7dda82be4d59e84ac6ee1
commit: 16d7afcaa5301f8243a7dda82be4d59e84ac6ee1 [41/41] rcu: No ordering for rcu_assign_pointer() of NULL
config: x86_64-rhel (attached as .config)
compiler: gcc-4.9 (Debian 4.9.3-14) 4.9.3
reproduce:
git checkout 16d7afcaa5301f8243a7dda82be4d59e84ac6ee1
# save the attached .config to linux build tree
make ARCH=x86_64
Note: the rcu/rcu/next HEAD 16d7afcaa5301f8243a7dda82be4d59e84ac6ee1 builds fine.
It only hurts bisectibility.
All error/warnings (new ones prefixed by >>):
arch/x86/kvm/vmx.c: In function 'vmx_init':
>> arch/x86/kvm/vmx.c:11022:2: error: function '_r_a_p__v' is initialized like a variable
rcu_assign_pointer(crash_vmclear_loaded_vmcss,
^
In file included from include/linux/rbtree.h:34:0,
from include/linux/mm_types.h:9,
from arch/x86/kvm/irq.h:25,
from arch/x86/kvm/vmx.c:19:
>> include/linux/rcupdate.h:657:45: warning: the comparison will always evaluate as 'false' for the address of '_r_a_p__v' will never be NULL [-Waddress]
if (__builtin_constant_p(v) && (_r_a_p__v) == NULL) \
^
>> arch/x86/kvm/vmx.c:11022:2: note: in expansion of macro 'rcu_assign_pointer'
rcu_assign_pointer(crash_vmclear_loaded_vmcss,
^
>> include/linux/rcupdate.h:655:12: error: nested function '_r_a_p__v' declared but never defined
typeof(v) _r_a_p__v = (v); \
^
>> arch/x86/kvm/vmx.c:11022:2: note: in expansion of macro 'rcu_assign_pointer'
rcu_assign_pointer(crash_vmclear_loaded_vmcss,
^
In file included from arch/x86/kvm/vmx.c:25:0:
arch/x86/kvm/vmx.c: At top level:
>> include/linux/module.h:130:6: error: 'init_module' aliased to undefined symbol 'vmx_init'
int init_module(void) __attribute__((alias(#initfn)));
^
>> arch/x86/kvm/vmx.c:11039:1: note: in expansion of macro 'module_init'
module_init(vmx_init)
^
vim +/_r_a_p__v +11022 arch/x86/kvm/vmx.c
34a1cd60 arch/x86/kvm/vmx.c Tiejun Chen 2014-10-28 11016 int r = kvm_init(&vmx_x86_ops, sizeof(struct vcpu_vmx),
0ee75bea arch/x86/kvm/vmx.c Avi Kivity 2010-04-28 11017 __alignof__(struct vcpu_vmx), THIS_MODULE);
fdef3ad1 drivers/kvm/vmx.c He, Qing 2007-04-30 11018 if (r)
34a1cd60 arch/x86/kvm/vmx.c Tiejun Chen 2014-10-28 11019 return r;
25c5f225 arch/x86/kvm/vmx.c Sheng Yang 2008-03-28 11020
2965faa5 arch/x86/kvm/vmx.c Dave Young 2015-09-09 11021 #ifdef CONFIG_KEXEC_CORE
8f536b76 arch/x86/kvm/vmx.c Zhang Yanfei 2012-12-06 @11022 rcu_assign_pointer(crash_vmclear_loaded_vmcss,
8f536b76 arch/x86/kvm/vmx.c Zhang Yanfei 2012-12-06 11023 crash_vmclear_local_loaded_vmcss);
8f536b76 arch/x86/kvm/vmx.c Zhang Yanfei 2012-12-06 11024 #endif
8f536b76 arch/x86/kvm/vmx.c Zhang Yanfei 2012-12-06 11025
fdef3ad1 drivers/kvm/vmx.c He, Qing 2007-04-30 11026 return 0;
6aa8b732 drivers/kvm/vmx.c Avi Kivity 2006-12-10 11027 }
6aa8b732 drivers/kvm/vmx.c Avi Kivity 2006-12-10 11028
6aa8b732 drivers/kvm/vmx.c Avi Kivity 2006-12-10 11029 static void __exit vmx_exit(void)
6aa8b732 drivers/kvm/vmx.c Avi Kivity 2006-12-10 11030 {
2965faa5 arch/x86/kvm/vmx.c Dave Young 2015-09-09 11031 #ifdef CONFIG_KEXEC_CORE
3b63a43f arch/x86/kvm/vmx.c Monam Agarwal 2014-03-22 11032 RCU_INIT_POINTER(crash_vmclear_loaded_vmcss, NULL);
8f536b76 arch/x86/kvm/vmx.c Zhang Yanfei 2012-12-06 11033 synchronize_rcu();
8f536b76 arch/x86/kvm/vmx.c Zhang Yanfei 2012-12-06 11034 #endif
8f536b76 arch/x86/kvm/vmx.c Zhang Yanfei 2012-12-06 11035
cb498ea2 drivers/kvm/vmx.c Zhang Xiantao 2007-11-14 11036 kvm_exit();
6aa8b732 drivers/kvm/vmx.c Avi Kivity 2006-12-10 11037 }
6aa8b732 drivers/kvm/vmx.c Avi Kivity 2006-12-10 11038
6aa8b732 drivers/kvm/vmx.c Avi Kivity 2006-12-10 @11039 module_init(vmx_init)
6aa8b732 drivers/kvm/vmx.c Avi Kivity 2006-12-10 11040 module_exit(vmx_exit)
:::::: The code at line 11022 was first introduced by commit
:::::: 8f536b7697a0d40ef6b5fd04cf2c04953d5ca06f KVM: VMX: provide the vmclear function and a bitmap to support VMCLEAR in kdump
:::::: TO: Zhang Yanfei <zhangyanfei@xxxxxxxxxxxxxx>
:::::: CC: Gleb Natapov <gleb@xxxxxxxxxx>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
----- End forwarded message -----