Re: arch/x86/kernel/cpu/debugfs.c:11:33: sparse: sparse: incorrect type in initializer (different address spaces)

From: Yujie Liu
Date: Sat Mar 02 2024 - 08:04:49 EST


On Sat, Mar 02, 2024 at 07:38:31AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: d17468c6f1f49e6259698f6401b8d7a5b90eac68
> commit: 48525fd1ea1cfa059a580e77b10ea8790914efa2 x86/cpu: Provide debug interface
> date: 5 months ago
> config: x86_64-randconfig-121-20240301 (https://download.01.org/0day-ci/archive/20240302/202403020747.CxX5V2dB-lkp@xxxxxxxxx/config)
> compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240302/202403020747.CxX5V2dB-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/202403020747.CxX5V2dB-lkp@xxxxxxxxx/
>
> sparse warnings: (new ones prefixed by >>)

Sorry for the empty warning here. The actual sparse warning is:

arch/x86/kernel/cpu/debugfs.c:11:33: sparse: sparse: incorrect type in initializer (different address spaces)
arch/x86/kernel/cpu/debugfs.c:11:33: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/kernel/cpu/debugfs.c:11:33: sparse: got struct cpuinfo_x86 *

>
>
> vim +11 arch/x86/kernel/cpu/debugfs.c
>
> 7
> 8 static int cpu_debug_show(struct seq_file *m, void *p)
> 9 {
> 10 unsigned long cpu = (unsigned long)m->private;
> > 11 struct cpuinfo_x86 *c = per_cpu_ptr(&cpu_info, cpu);
> 12
> 13 seq_printf(m, "online: %d\n", cpu_online(cpu));
> 14 if (!c->initialized)
> 15 return 0;
> 16
> 17 seq_printf(m, "initial_apicid: %x\n", c->topo.initial_apicid);
> 18 seq_printf(m, "apicid: %x\n", c->topo.apicid);
> 19 seq_printf(m, "pkg_id: %u\n", c->topo.pkg_id);
> 20 seq_printf(m, "die_id: %u\n", c->topo.die_id);
> 21 seq_printf(m, "cu_id: %u\n", c->topo.cu_id);
> 22 seq_printf(m, "core_id: %u\n", c->topo.core_id);
> 23 seq_printf(m, "logical_pkg_id: %u\n", c->topo.logical_pkg_id);
> 24 seq_printf(m, "logical_die_id: %u\n", c->topo.logical_die_id);
> 25 seq_printf(m, "llc_id: %u\n", c->topo.llc_id);
> 26 seq_printf(m, "l2c_id: %u\n", c->topo.l2c_id);
> 27 seq_printf(m, "max_cores: %u\n", c->x86_max_cores);
> 28 seq_printf(m, "max_die_per_pkg: %u\n", __max_die_per_package);
> 29 seq_printf(m, "smp_num_siblings: %u\n", smp_num_siblings);
> 30 return 0;
> 31 }
> 32
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>