[thomas-weissschuh:b4/vdso-asm-generic-vsyscall-h 12/12] arch/riscv/kernel/sys_hwprobe.c:525:31: error: use of undeclared identifier 'vdso_k_arch_data'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.llvm,dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/thomas.weissschuh/linux.git b4/vdso-asm-generic-vsyscall-h
head:   adcfde532be640a97064a7f9ecb20b6026a4c3d2
commit: adcfde532be640a97064a7f9ecb20b6026a4c3d2 [12/12] remove
config: riscv-randconfig-001-20260813 (https://download.01.org/0day-ci/archive/20260813/[email protected]/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 6ea395e4fe4db26920d57779ddae98eac6ba945d)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260813/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

>> arch/riscv/kernel/sys_hwprobe.c:525:31: error: use of undeclared identifier 'vdso_k_arch_data'
     525 |         struct vdso_arch_data *avd = vdso_k_arch_data;
         |                                      ^~~~~~~~~~~~~~~~
>> arch/riscv/kernel/sys_hwprobe.c:543:6: error: incomplete definition of type 'struct vdso_arch_data'
     543 |                 avd->all_cpu_hwprobe_values[key] = pair.value;
         |                 ~~~^
   arch/riscv/kernel/sys_hwprobe.c:525:9: note: forward declaration of 'struct vdso_arch_data'
     525 |         struct vdso_arch_data *avd = vdso_k_arch_data;
         |                ^
   arch/riscv/kernel/sys_hwprobe.c:559:5: error: incomplete definition of type 'struct vdso_arch_data'
     559 |         avd->homogeneous_cpus = id_bitsmash != 0 && id_bitsmash != -1;
         |         ~~~^
   arch/riscv/kernel/sys_hwprobe.c:525:9: note: forward declaration of 'struct vdso_arch_data'
     525 |         struct vdso_arch_data *avd = vdso_k_arch_data;
         |                ^
   arch/riscv/kernel/sys_hwprobe.c:567:5: error: incomplete definition of type 'struct vdso_arch_data'
     567 |         avd->ready = true;
         |         ~~~^
   arch/riscv/kernel/sys_hwprobe.c:525:9: note: forward declaration of 'struct vdso_arch_data'
     525 |         struct vdso_arch_data *avd = vdso_k_arch_data;
         |                ^
   arch/riscv/kernel/sys_hwprobe.c:573:31: error: use of undeclared identifier 'vdso_k_arch_data'
     573 |         struct vdso_arch_data *avd = vdso_k_arch_data;
         |                                      ^~~~~~~~~~~~~~~~
   arch/riscv/kernel/sys_hwprobe.c:579:5: error: incomplete definition of type 'struct vdso_arch_data'
     579 |         avd->ready = false;
         |         ~~~^
   arch/riscv/kernel/sys_hwprobe.c:573:9: note: forward declaration of 'struct vdso_arch_data'
     573 |         struct vdso_arch_data *avd = vdso_k_arch_data;
         |                ^
   6 errors generated.


vim +/vdso_k_arch_data +525 arch/riscv/kernel/sys_hwprobe.c

53b2b22850e1ff Andrew Jones     2023-11-22  522  
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  523  static int complete_hwprobe_vdso_data(void)
53b2b22850e1ff Andrew Jones     2023-11-22  524  {
46fe55b204bfb0 Thomas Weißschuh 2025-02-04 @525  	struct vdso_arch_data *avd = vdso_k_arch_data;
53b2b22850e1ff Andrew Jones     2023-11-22  526  	u64 id_bitsmash = 0;
53b2b22850e1ff Andrew Jones     2023-11-22  527  	struct riscv_hwprobe pair;
53b2b22850e1ff Andrew Jones     2023-11-22  528  	int key;
53b2b22850e1ff Andrew Jones     2023-11-22  529  
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  530  	if (unlikely(!atomic_dec_and_test(&pending_boot_probes)))
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  531  		wait_for_completion(&boot_probes_done);
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  532  
53b2b22850e1ff Andrew Jones     2023-11-22  533  	/*
53b2b22850e1ff Andrew Jones     2023-11-22  534  	 * Initialize vDSO data with the answers for the "all CPUs" case, to
53b2b22850e1ff Andrew Jones     2023-11-22  535  	 * save a syscall in the common case.
53b2b22850e1ff Andrew Jones     2023-11-22  536  	 */
53b2b22850e1ff Andrew Jones     2023-11-22  537  	for (key = 0; key <= RISCV_HWPROBE_MAX_KEY; key++) {
53b2b22850e1ff Andrew Jones     2023-11-22  538  		pair.key = key;
53b2b22850e1ff Andrew Jones     2023-11-22  539  		hwprobe_one_pair(&pair, cpu_online_mask);
53b2b22850e1ff Andrew Jones     2023-11-22  540  
53b2b22850e1ff Andrew Jones     2023-11-22  541  		WARN_ON_ONCE(pair.key < 0);
53b2b22850e1ff Andrew Jones     2023-11-22  542  
53b2b22850e1ff Andrew Jones     2023-11-22 @543  		avd->all_cpu_hwprobe_values[key] = pair.value;
53b2b22850e1ff Andrew Jones     2023-11-22  544  		/*
53b2b22850e1ff Andrew Jones     2023-11-22  545  		 * Smash together the vendor, arch, and impl IDs to see if
53b2b22850e1ff Andrew Jones     2023-11-22  546  		 * they're all 0 or any negative.
53b2b22850e1ff Andrew Jones     2023-11-22  547  		 */
53b2b22850e1ff Andrew Jones     2023-11-22  548  		if (key <= RISCV_HWPROBE_KEY_MIMPID)
53b2b22850e1ff Andrew Jones     2023-11-22  549  			id_bitsmash |= pair.value;
53b2b22850e1ff Andrew Jones     2023-11-22  550  	}
53b2b22850e1ff Andrew Jones     2023-11-22  551  
53b2b22850e1ff Andrew Jones     2023-11-22  552  	/*
53b2b22850e1ff Andrew Jones     2023-11-22  553  	 * If the arch, vendor, and implementation ID are all the same across
53b2b22850e1ff Andrew Jones     2023-11-22  554  	 * all harts, then assume all CPUs are the same, and allow the vDSO to
53b2b22850e1ff Andrew Jones     2023-11-22  555  	 * answer queries for arbitrary masks. However if all values are 0 (not
53b2b22850e1ff Andrew Jones     2023-11-22  556  	 * populated) or any value returns -1 (varies across CPUs), then the
53b2b22850e1ff Andrew Jones     2023-11-22  557  	 * vDSO should defer to the kernel for exotic cpu masks.
53b2b22850e1ff Andrew Jones     2023-11-22  558  	 */
53b2b22850e1ff Andrew Jones     2023-11-22  559  	avd->homogeneous_cpus = id_bitsmash != 0 && id_bitsmash != -1;
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  560  
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  561  	/*
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  562  	 * Make sure all the VDSO values are visible before we look at them.
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  563  	 * This pairs with the implicit "no speculativly visible accesses"
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  564  	 * barrier in the VDSO hwprobe code.
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  565  	 */
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  566  	smp_wmb();
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  567  	avd->ready = true;
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  568  	return 0;
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  569  }
5d15d2ad36b0f7 Jingwei Wang     2025-08-11  570  

:::::: The code at line 525 was first introduced by commit
:::::: 46fe55b204bfb007e0f0a5409dcda063ad98b089 riscv: vdso: Switch to generic storage implementation

:::::: TO: Thomas Weißschuh <[email protected]>
:::::: CC: Thomas Gleixner <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.