Hi Andy, kernel test robot noticed the following build errors: [auto build test ERROR on next-20230518] url: https://github.com/intel-lab-lkp/linux/commits/Andy-Chiu/riscv-Rename-__switch_to_aux-fpu/20230519-005938 base: next-20230518 patch link: https://lore.kernel.org/r/20230518161949.11203-21-andy.chiu%40sifive.com patch subject: [PATCH -next v20 20/26] riscv: Add prctl controls for userspace vector management config: microblaze-randconfig-m031-20230517 compiler: microblaze-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/eef6095228f3323db8f2bddd5bde768976888558 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Andy-Chiu/riscv-Rename-__switch_to_aux-fpu/20230519-005938 git checkout eef6095228f3323db8f2bddd5bde768976888558 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=microblaze olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=microblaze SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202305202157.62W33UKT-lkp@intel.com/ All errors (new ones prefixed by >>): kernel/sys.c: In function '__do_sys_prctl': >> kernel/sys.c:2718:25: error: implicit declaration of function 'RISCV_V_SET_CONTROL'; did you mean 'PR_RISCV_V_SET_CONTROL'? [-Werror=implicit-function-declaration] 2718 | error = RISCV_V_SET_CONTROL(arg2); | ^~~~~~~~~~~~~~~~~~~ | PR_RISCV_V_SET_CONTROL >> kernel/sys.c:2721:25: error: implicit declaration of function 'RISCV_V_GET_CONTROL'; did you mean 'PR_RISCV_V_GET_CONTROL'? [-Werror=implicit-function-declaration] 2721 | error = RISCV_V_GET_CONTROL(); | ^~~~~~~~~~~~~~~~~~~ | PR_RISCV_V_GET_CONTROL cc1: some warnings being treated as errors vim +2718 kernel/sys.c 2407 2408 SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, 2409 unsigned long, arg4, unsigned long, arg5) 2410 { 2411 struct task_struct *me = current; 2412 unsigned char comm[sizeof(me->comm)]; 2413 long error; 2414 2415 error = security_task_prctl(option, arg2, arg3, arg4, arg5); 2416 if (error != -ENOSYS) 2417 return error; 2418 2419 error = 0; 2420 switch (option) { 2421 case PR_SET_PDEATHSIG: 2422 if (!valid_signal(arg2)) { 2423 error = -EINVAL; 2424 break; 2425 } 2426 me->pdeath_signal = arg2; 2427 break; 2428 case PR_GET_PDEATHSIG: 2429 error = put_user(me->pdeath_signal, (int __user *)arg2); 2430 break; 2431 case PR_GET_DUMPABLE: 2432 error = get_dumpable(me->mm); 2433 break; 2434 case PR_SET_DUMPABLE: 2435 if (arg2 != SUID_DUMP_DISABLE && arg2 != SUID_DUMP_USER) { 2436 error = -EINVAL; 2437 break; 2438 } 2439 set_dumpable(me->mm, arg2); 2440 break; 2441 2442 case PR_SET_UNALIGN: 2443 error = SET_UNALIGN_CTL(me, arg2); 2444 break; 2445 case PR_GET_UNALIGN: 2446 error = GET_UNALIGN_CTL(me, arg2); 2447 break; 2448 case PR_SET_FPEMU: 2449 error = SET_FPEMU_CTL(me, arg2); 2450 break; 2451 case PR_GET_FPEMU: 2452 error = GET_FPEMU_CTL(me, arg2); 2453 break; 2454 case PR_SET_FPEXC: 2455 error = SET_FPEXC_CTL(me, arg2); 2456 break; 2457 case PR_GET_FPEXC: 2458 error = GET_FPEXC_CTL(me, arg2); 2459 break; 2460 case PR_GET_TIMING: 2461 error = PR_TIMING_STATISTICAL; 2462 break; 2463 case PR_SET_TIMING: 2464 if (arg2 != PR_TIMING_STATISTICAL) 2465 error = -EINVAL; 2466 break; 2467 case PR_SET_NAME: 2468 comm[sizeof(me->comm) - 1] = 0; 2469 if (strncpy_from_user(comm, (char __user *)arg2, 2470 sizeof(me->comm) - 1) < 0) 2471 return -EFAULT; 2472 set_task_comm(me, comm); 2473 proc_comm_connector(me); 2474 break; 2475 case PR_GET_NAME: 2476 get_task_comm(comm, me); 2477 if (copy_to_user((char __user *)arg2, comm, sizeof(comm))) 2478 return -EFAULT; 2479 break; 2480 case PR_GET_ENDIAN: 2481 error = GET_ENDIAN(me, arg2); 2482 break; 2483 case PR_SET_ENDIAN: 2484 error = SET_ENDIAN(me, arg2); 2485 break; 2486 case PR_GET_SECCOMP: 2487 error = prctl_get_seccomp(); 2488 break; 2489 case PR_SET_SECCOMP: 2490 error = prctl_set_seccomp(arg2, (char __user *)arg3); 2491 break; 2492 case PR_GET_TSC: 2493 error = GET_TSC_CTL(arg2); 2494 break; 2495 case PR_SET_TSC: 2496 error = SET_TSC_CTL(arg2); 2497 break; 2498 case PR_TASK_PERF_EVENTS_DISABLE: 2499 error = perf_event_task_disable(); 2500 break; 2501 case PR_TASK_PERF_EVENTS_ENABLE: 2502 error = perf_event_task_enable(); 2503 break; 2504 case PR_GET_TIMERSLACK: 2505 if (current->timer_slack_ns > ULONG_MAX) 2506 error = ULONG_MAX; 2507 else 2508 error = current->timer_slack_ns; 2509 break; 2510 case PR_SET_TIMERSLACK: 2511 if (arg2 <= 0) 2512 current->timer_slack_ns = 2513 current->default_timer_slack_ns; 2514 else 2515 current->timer_slack_ns = arg2; 2516 break; 2517 case PR_MCE_KILL: 2518 if (arg4 | arg5) 2519 return -EINVAL; 2520 switch (arg2) { 2521 case PR_MCE_KILL_CLEAR: 2522 if (arg3 != 0) 2523 return -EINVAL; 2524 current->flags &= ~PF_MCE_PROCESS; 2525 break; 2526 case PR_MCE_KILL_SET: 2527 current->flags |= PF_MCE_PROCESS; 2528 if (arg3 == PR_MCE_KILL_EARLY) 2529 current->flags |= PF_MCE_EARLY; 2530 else if (arg3 == PR_MCE_KILL_LATE) 2531 current->flags &= ~PF_MCE_EARLY; 2532 else if (arg3 == PR_MCE_KILL_DEFAULT) 2533 current->flags &= 2534 ~(PF_MCE_EARLY|PF_MCE_PROCESS); 2535 else 2536 return -EINVAL; 2537 break; 2538 case PR_GET_AUXV: 2539 if (arg4 || arg5) 2540 return -EINVAL; 2541 error = prctl_get_auxv((void __user *)arg2, arg3); 2542 break; 2543 default: 2544 return -EINVAL; 2545 } 2546 break; 2547 case PR_MCE_KILL_GET: 2548 if (arg2 | arg3 | arg4 | arg5) 2549 return -EINVAL; 2550 if (current->flags & PF_MCE_PROCESS) 2551 error = (current->flags & PF_MCE_EARLY) ? 2552 PR_MCE_KILL_EARLY : PR_MCE_KILL_LATE; 2553 else 2554 error = PR_MCE_KILL_DEFAULT; 2555 break; 2556 case PR_SET_MM: 2557 error = prctl_set_mm(arg2, arg3, arg4, arg5); 2558 break; 2559 case PR_GET_TID_ADDRESS: 2560 error = prctl_get_tid_address(me, (int __user * __user *)arg2); 2561 break; 2562 case PR_SET_CHILD_SUBREAPER: 2563 me->signal->is_child_subreaper = !!arg2; 2564 if (!arg2) 2565 break; 2566 2567 walk_process_tree(me, propagate_has_child_subreaper, NULL); 2568 break; 2569 case PR_GET_CHILD_SUBREAPER: 2570 error = put_user(me->signal->is_child_subreaper, 2571 (int __user *)arg2); 2572 break; 2573 case PR_SET_NO_NEW_PRIVS: 2574 if (arg2 != 1 || arg3 || arg4 || arg5) 2575 return -EINVAL; 2576 2577 task_set_no_new_privs(current); 2578 break; 2579 case PR_GET_NO_NEW_PRIVS: 2580 if (arg2 || arg3 || arg4 || arg5) 2581 return -EINVAL; 2582 return task_no_new_privs(current) ? 1 : 0; 2583 case PR_GET_THP_DISABLE: 2584 if (arg2 || arg3 || arg4 || arg5) 2585 return -EINVAL; 2586 error = !!test_bit(MMF_DISABLE_THP, &me->mm->flags); 2587 break; 2588 case PR_SET_THP_DISABLE: 2589 if (arg3 || arg4 || arg5) 2590 return -EINVAL; 2591 if (mmap_write_lock_killable(me->mm)) 2592 return -EINTR; 2593 if (arg2) 2594 set_bit(MMF_DISABLE_THP, &me->mm->flags); 2595 else 2596 clear_bit(MMF_DISABLE_THP, &me->mm->flags); 2597 mmap_write_unlock(me->mm); 2598 break; 2599 case PR_MPX_ENABLE_MANAGEMENT: 2600 case PR_MPX_DISABLE_MANAGEMENT: 2601 /* No longer implemented: */ 2602 return -EINVAL; 2603 case PR_SET_FP_MODE: 2604 error = SET_FP_MODE(me, arg2); 2605 break; 2606 case PR_GET_FP_MODE: 2607 error = GET_FP_MODE(me); 2608 break; 2609 case PR_SVE_SET_VL: 2610 error = SVE_SET_VL(arg2); 2611 break; 2612 case PR_SVE_GET_VL: 2613 error = SVE_GET_VL(); 2614 break; 2615 case PR_SME_SET_VL: 2616 error = SME_SET_VL(arg2); 2617 break; 2618 case PR_SME_GET_VL: 2619 error = SME_GET_VL(); 2620 break; 2621 case PR_GET_SPECULATION_CTRL: 2622 if (arg3 || arg4 || arg5) 2623 return -EINVAL; 2624 error = arch_prctl_spec_ctrl_get(me, arg2); 2625 break; 2626 case PR_SET_SPECULATION_CTRL: 2627 if (arg4 || arg5) 2628 return -EINVAL; 2629 error = arch_prctl_spec_ctrl_set(me, arg2, arg3); 2630 break; 2631 case PR_PAC_RESET_KEYS: 2632 if (arg3 || arg4 || arg5) 2633 return -EINVAL; 2634 error = PAC_RESET_KEYS(me, arg2); 2635 break; 2636 case PR_PAC_SET_ENABLED_KEYS: 2637 if (arg4 || arg5) 2638 return -EINVAL; 2639 error = PAC_SET_ENABLED_KEYS(me, arg2, arg3); 2640 break; 2641 case PR_PAC_GET_ENABLED_KEYS: 2642 if (arg2 || arg3 || arg4 || arg5) 2643 return -EINVAL; 2644 error = PAC_GET_ENABLED_KEYS(me); 2645 break; 2646 case PR_SET_TAGGED_ADDR_CTRL: 2647 if (arg3 || arg4 || arg5) 2648 return -EINVAL; 2649 error = SET_TAGGED_ADDR_CTRL(arg2); 2650 break; 2651 case PR_GET_TAGGED_ADDR_CTRL: 2652 if (arg2 || arg3 || arg4 || arg5) 2653 return -EINVAL; 2654 error = GET_TAGGED_ADDR_CTRL(); 2655 break; 2656 case PR_SET_IO_FLUSHER: 2657 if (!capable(CAP_SYS_RESOURCE)) 2658 return -EPERM; 2659 2660 if (arg3 || arg4 || arg5) 2661 return -EINVAL; 2662 2663 if (arg2 == 1) 2664 current->flags |= PR_IO_FLUSHER; 2665 else if (!arg2) 2666 current->flags &= ~PR_IO_FLUSHER; 2667 else 2668 return -EINVAL; 2669 break; 2670 case PR_GET_IO_FLUSHER: 2671 if (!capable(CAP_SYS_RESOURCE)) 2672 return -EPERM; 2673 2674 if (arg2 || arg3 || arg4 || arg5) 2675 return -EINVAL; 2676 2677 error = (current->flags & PR_IO_FLUSHER) == PR_IO_FLUSHER; 2678 break; 2679 case PR_SET_SYSCALL_USER_DISPATCH: 2680 error = set_syscall_user_dispatch(arg2, arg3, arg4, 2681 (char __user *) arg5); 2682 break; 2683 #ifdef CONFIG_SCHED_CORE 2684 case PR_SCHED_CORE: 2685 error = sched_core_share_pid(arg2, arg3, arg4, arg5); 2686 break; 2687 #endif 2688 case PR_SET_MDWE: 2689 error = prctl_set_mdwe(arg2, arg3, arg4, arg5); 2690 break; 2691 case PR_GET_MDWE: 2692 error = prctl_get_mdwe(arg2, arg3, arg4, arg5); 2693 break; 2694 case PR_SET_VMA: 2695 error = prctl_set_vma(arg2, arg3, arg4, arg5); 2696 break; 2697 #ifdef CONFIG_KSM 2698 case PR_SET_MEMORY_MERGE: 2699 if (arg3 || arg4 || arg5) 2700 return -EINVAL; 2701 if (mmap_write_lock_killable(me->mm)) 2702 return -EINTR; 2703 2704 if (arg2) 2705 error = ksm_enable_merge_any(me->mm); 2706 else 2707 error = ksm_disable_merge_any(me->mm); 2708 mmap_write_unlock(me->mm); 2709 break; 2710 case PR_GET_MEMORY_MERGE: 2711 if (arg2 || arg3 || arg4 || arg5) 2712 return -EINVAL; 2713 2714 error = !!test_bit(MMF_VM_MERGE_ANY, &me->mm->flags); 2715 break; 2716 #endif 2717 case PR_RISCV_V_SET_CONTROL: > 2718 error = RISCV_V_SET_CONTROL(arg2); 2719 break; 2720 case PR_RISCV_V_GET_CONTROL: > 2721 error = RISCV_V_GET_CONTROL(); 2722 break; 2723 default: 2724 error = -EINVAL; 2725 break; 2726 } 2727 return error; 2728 } 2729 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki