[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