[tip:x86/cpu 3/14] arch/x86/xen/enlighten_pv.c:118:24: sparse: sparse: incorrect type in initializer (different address spaces)

From: kernel test robot
Date: Tue Mar 18 2025 - 13:19:34 EST


Hi Brian,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/cpu
head: ba501f14e1e6dcc94ff0276301e997ae28e3f4b3
commit: 82d829091f62721166d3f1af93c4c94fc9afa13e [3/14] x86/xen: Move Xen upcall handler
config: x86_64-randconfig-121-20250318 (https://download.01.org/0day-ci/archive/20250319/202503190109.ewohfLu6-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250319/202503190109.ewohfLu6-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503190109.ewohfLu6-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
arch/x86/xen/enlighten_pv.c:1490:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got struct gdt_page * @@
arch/x86/xen/enlighten_pv.c:1490:28: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/xen/enlighten_pv.c:1490:28: sparse: got struct gdt_page *
arch/x86/xen/enlighten_pv.c: note: in included file (through arch/x86/include/asm/stackprotector.h, include/linux/stackprotector.h):
arch/x86/include/asm/desc.h:54:16: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got struct gdt_page * @@
arch/x86/include/asm/desc.h:54:16: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/include/asm/desc.h:54:16: sparse: got struct gdt_page *
>> arch/x86/xen/enlighten_pv.c:118:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got bool * @@
arch/x86/xen/enlighten_pv.c:118:24: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/xen/enlighten_pv.c:118:24: sparse: got bool *
arch/x86/xen/enlighten_pv.c:120:9: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got bool * @@
arch/x86/xen/enlighten_pv.c:120:9: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/xen/enlighten_pv.c:120:9: sparse: got bool *
arch/x86/xen/enlighten_pv.c:126:9: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got bool * @@
arch/x86/xen/enlighten_pv.c:126:9: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/xen/enlighten_pv.c:126:9: sparse: got bool *

vim +118 arch/x86/xen/enlighten_pv.c

111
112 /*
113 * In case of scheduling the flag must be cleared and restored after
114 * returning from schedule as the task might move to a different CPU.
115 */
116 static __always_inline bool get_and_clear_inhcall(void)
117 {
> 118 bool inhcall = __this_cpu_read(xen_in_preemptible_hcall);
119
120 __this_cpu_write(xen_in_preemptible_hcall, false);
121 return inhcall;
122 }
123

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki