tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: d68dc6ee371ec5466be9b2d76bdca0b360940adc commit: b6239f748d0d896e39b9d41f108163bdb235b8bd [1636/1636] LoongArch: Fix AP booting issue in VM mode config: loongarch-randconfig-002-20241213 (https://download.01.org/0day-ci/archive/20241214/202412141010.py9YL9Li-lkp@i...) compiler: loongarch64-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241214/202412141010.py9YL9Li-lkp@i...)
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@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202412141010.py9YL9Li-lkp@intel.com/
All errors (new ones prefixed by >>):
| ^~~~~~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:82:1: note: in expansion of macro 'early_param' 82 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:335:27: note: previous definition of '__setup_str_parse_no_stealacc' with type 'const char[13]' 335 | static const char __setup_str_##unique_id[] __initconst \ | ^~~~~~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:30:1: note: in expansion of macro 'early_param' 30 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:337:40: error: redefinition of '__setup_parse_no_stealacc' 337 | static struct obs_kernel_param __setup_##unique_id \ | ^~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:82:1: note: in expansion of macro 'early_param' 82 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:337:40: note: previous definition of '__setup_parse_no_stealacc' with type 'struct obs_kernel_param' 337 | static struct obs_kernel_param __setup_##unique_id \ | ^~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:30:1: note: in expansion of macro 'early_param' 30 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:103:13: error: redefinition of 'steal_acc' 103 | static bool steal_acc = true; | ^~~~~~~~~ arch/loongarch/kernel/paravirt.c:75:13: note: previous definition of 'steal_acc' with type 'bool' {aka '_Bool'} 75 | static bool steal_acc = true; | ^~~~~~~~~ arch/loongarch/kernel/paravirt.c:105:19: error: redefinition of 'parse_no_stealacc' 105 | static int __init parse_no_stealacc(char *arg) | ^~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:77:19: note: previous definition of 'parse_no_stealacc' with type 'int(char *)' 77 | static int __init parse_no_stealacc(char *arg) | ^~~~~~~~~~~~~~~~~ include/linux/init.h:335:27: error: redefinition of '__setup_str_parse_no_stealacc' 335 | static const char __setup_str_##unique_id[] __initconst \ | ^~~~~~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:110:1: note: in expansion of macro 'early_param' 110 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:335:27: note: previous definition of '__setup_str_parse_no_stealacc' with type 'const char[13]' 335 | static const char __setup_str_##unique_id[] __initconst \ | ^~~~~~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:82:1: note: in expansion of macro 'early_param' 82 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:337:40: error: redefinition of '__setup_parse_no_stealacc' 337 | static struct obs_kernel_param __setup_##unique_id \ | ^~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:110:1: note: in expansion of macro 'early_param' 110 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:337:40: note: previous definition of '__setup_parse_no_stealacc' with type 'struct obs_kernel_param' 337 | static struct obs_kernel_param __setup_##unique_id \ | ^~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:82:1: note: in expansion of macro 'early_param' 82 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:112:12: error: redefinition of 'paravt_steal_clock' 112 | static u64 paravt_steal_clock(int cpu) | ^~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:84:12: note: previous definition of 'paravt_steal_clock' with type 'u64(int)' {aka 'long long unsigned int(int)'} 84 | static u64 paravt_steal_clock(int cpu) | ^~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c: In function 'pv_send_ipi_single': arch/loongarch/kernel/paravirt.c:149:24: error: 'KVM_HCALL_FUNC_PV_IPI' undeclared (first use in this function); did you mean 'KVM_HCALL_FUNC_IPI'? 149 | kvm_hypercall3(KVM_HCALL_FUNC_PV_IPI, 1, 0, min); | ^~~~~~~~~~~~~~~~~~~~~ | KVM_HCALL_FUNC_IPI arch/loongarch/kernel/paravirt.c:149:24: note: each undeclared identifier is reported only once for each function it appears in arch/loongarch/kernel/paravirt.c: In function 'pv_send_ipi_mask': arch/loongarch/kernel/paravirt.c:188:40: error: 'KVM_HCALL_FUNC_PV_IPI' undeclared (first use in this function); did you mean 'KVM_HCALL_FUNC_IPI'? 188 | kvm_hypercall3(KVM_HCALL_FUNC_PV_IPI, | ^~~~~~~~~~~~~~~~~~~~~ | KVM_HCALL_FUNC_IPI arch/loongarch/kernel/paravirt.c: In function 'pv_ipi_init':
arch/loongarch/kernel/paravirt.c:302:35: error: 'mp_ops' undeclared (first use in this function); did you mean 'smp_ops'?
302 | native_ops = mp_ops; | ^~~~~~ | smp_ops arch/loongarch/kernel/paravirt.c: At top level: arch/loongarch/kernel/paravirt.c:385:13: error: redefinition of 'pv_disable_steal_time' 385 | static void pv_disable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:239:13: note: previous definition of 'pv_disable_steal_time' with type 'void(void)' 239 | static void pv_disable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:415:13: error: redefinition of 'pv_cpu_reboot' 415 | static void pv_cpu_reboot(void *unused) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:311:13: note: previous definition of 'pv_cpu_reboot' with type 'void(void *)' 311 | static void pv_cpu_reboot(void *unused) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:420:12: error: redefinition of 'pv_reboot_notify' 420 | static int pv_reboot_notify(struct notifier_block *nb, unsigned long code, void *unused) | ^~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:316:12: note: previous definition of 'pv_reboot_notify' with type 'int(struct notifier_block *, long unsigned int, void *)' 316 | static int pv_reboot_notify(struct notifier_block *nb, unsigned long code, | ^~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:426:30: error: redefinition of 'pv_reboot_nb' 426 | static struct notifier_block pv_reboot_nb = { | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:323:30: note: previous definition of 'pv_reboot_nb' with type 'struct notifier_block' 323 | static struct notifier_block pv_reboot_nb = { | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:430:12: error: redefinition of 'pv_time_init' 430 | int __init pv_time_init(void) | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:327:12: note: previous definition of 'pv_time_init' with type 'int(void)' 327 | int __init pv_time_init(void) | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:469:12: error: redefinition of 'pv_enable_steal_time' 469 | static int pv_enable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:361:12: note: previous definition of 'pv_enable_steal_time' with type 'int(void)' 361 | static int pv_enable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:493:13: error: redefinition of 'pv_disable_steal_time' 493 | static void pv_disable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:385:13: note: previous definition of 'pv_disable_steal_time' with type 'void(void)' 385 | static void pv_disable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:500:12: error: redefinition of 'pv_time_cpu_online' 500 | static int pv_time_cpu_online(unsigned int cpu) | ^~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:392:12: note: previous definition of 'pv_time_cpu_online' with type 'int(unsigned int)' 392 | static int pv_time_cpu_online(unsigned int cpu) | ^~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:511:12: error: redefinition of 'pv_time_cpu_down_prepare' 511 | static int pv_time_cpu_down_prepare(unsigned int cpu) | ^~~~~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:403:12: note: previous definition of 'pv_time_cpu_down_prepare' with type 'int(unsigned int)' 403 | static int pv_time_cpu_down_prepare(unsigned int cpu) | ^~~~~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:523:13: error: redefinition of 'pv_cpu_reboot' 523 | static void pv_cpu_reboot(void *unused) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:415:13: note: previous definition of 'pv_cpu_reboot' with type 'void(void *)' 415 | static void pv_cpu_reboot(void *unused) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:528:12: error: redefinition of 'pv_reboot_notify' 528 | static int pv_reboot_notify(struct notifier_block *nb, unsigned long code, void *unused) | ^~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:420:12: note: previous definition of 'pv_reboot_notify' with type 'int(struct notifier_block *, long unsigned int, void *)' 420 | static int pv_reboot_notify(struct notifier_block *nb, unsigned long code, void *unused) | ^~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:534:30: error: redefinition of 'pv_reboot_nb' 534 | static struct notifier_block pv_reboot_nb = { | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:426:30: note: previous definition of 'pv_reboot_nb' with type 'struct notifier_block' 426 | static struct notifier_block pv_reboot_nb = { | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:538:12: error: redefinition of 'pv_time_init' 538 | int __init pv_time_init(void) | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:327:12: note: previous definition of 'pv_time_init' with type 'int(void)' 327 | int __init pv_time_init(void) | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:84:12: warning: 'paravt_steal_clock' defined but not used [-Wunused-function] 84 | static u64 paravt_steal_clock(int cpu) | ^~~~~~~~~~~~~~~~~~
vim +302 arch/loongarch/kernel/paravirt.c
295 296 int __init pv_ipi_init(void) 297 { 298 if (!kvm_para_has_feature(KVM_FEATURE_IPI)) 299 return 0; 300 301 #ifdef CONFIG_SMP
302 native_ops = mp_ops;
303 smp_ops.init_ipi = pv_init_ipi; 304 smp_ops.send_ipi_single = pv_send_ipi_single; 305 smp_ops.send_ipi_mask = pv_send_ipi_mask; 306 #endif 307 308 return 0; 309 } 310