Hi Nuno, kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master] [also build test WARNING on v6.17-rc5 next-20250911] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Nuno-Das-Neves/mshv-Only-map-vp-vp_stats_pages-if-on-root-scheduler/20250911-071732 base: linus/master patch link: https://lore.kernel.org/r/1757546089-2002-5-git-send-email-nunodasneves%40linux.microsoft.com patch subject: [PATCH v2 4/5] mshv: Allocate vp state page for HVCALL_MAP_VP_STATE_PAGE on L1VH config: x86_64-randconfig-072-20250911 (https://download.01.org/0day-ci/archive/20250912/[email protected]/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250912/[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 warnings (new ones prefixed by >>): >> drivers/hv/mshv_root_main.c:966:7: warning: variable 'vp' is used >> uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 966 | if (ret) | ^~~ drivers/hv/mshv_root_main.c:1030:11: note: uninitialized use occurs here 1030 | vp->vp_intercept_msg_page, input_vtl_zero); | ^~ drivers/hv/mshv_root_main.c:966:3: note: remove the 'if' if its condition is always false 966 | if (ret) | ^~~~~~~~ 967 | goto unmap_ghcb_page; | ~~~~~~~~~~~~~~~~~~~~ drivers/hv/mshv_root_main.c:955:7: warning: variable 'vp' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 955 | if (ret) | ^~~ drivers/hv/mshv_root_main.c:1030:11: note: uninitialized use occurs here 1030 | vp->vp_intercept_msg_page, input_vtl_zero); | ^~ drivers/hv/mshv_root_main.c:955:3: note: remove the 'if' if its condition is always false 955 | if (ret) | ^~~~~~~~ 956 | goto unmap_register_page; | ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/hv/mshv_root_main.c:946:7: warning: variable 'vp' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 946 | if (ret) | ^~~ drivers/hv/mshv_root_main.c:1030:11: note: uninitialized use occurs here 1030 | vp->vp_intercept_msg_page, input_vtl_zero); | ^~ drivers/hv/mshv_root_main.c:946:3: note: remove the 'if' if its condition is always false 946 | if (ret) | ^~~~~~~~ 947 | goto unmap_intercept_message_page; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/hv/mshv_root_main.c:917:20: note: initialize the variable 'vp' to silence this warning 917 | struct mshv_vp *vp; | ^ | = NULL drivers/hv/mshv_root_main.c:41:20: warning: unused function 'hv_parent_partition' [-Wunused-function] 41 | static inline bool hv_parent_partition(void) | ^~~~~~~~~~~~~~~~~~~ 4 warnings generated. vim +966 drivers/hv/mshv_root_main.c 621191d709b1488 Nuno Das Neves 2025-03-14 911 621191d709b1488 Nuno Das Neves 2025-03-14 912 static long 621191d709b1488 Nuno Das Neves 2025-03-14 913 mshv_partition_ioctl_create_vp(struct mshv_partition *partition, 621191d709b1488 Nuno Das Neves 2025-03-14 914 void __user *arg) 621191d709b1488 Nuno Das Neves 2025-03-14 915 { 621191d709b1488 Nuno Das Neves 2025-03-14 916 struct mshv_create_vp args; 621191d709b1488 Nuno Das Neves 2025-03-14 917 struct mshv_vp *vp; 621191d709b1488 Nuno Das Neves 2025-03-14 918 struct page *intercept_message_page, *register_page, *ghcb_page; 621191d709b1488 Nuno Das Neves 2025-03-14 919 void *stats_pages[2]; 621191d709b1488 Nuno Das Neves 2025-03-14 920 long ret; 621191d709b1488 Nuno Das Neves 2025-03-14 921 621191d709b1488 Nuno Das Neves 2025-03-14 922 if (copy_from_user(&args, arg, sizeof(args))) 621191d709b1488 Nuno Das Neves 2025-03-14 923 return -EFAULT; 621191d709b1488 Nuno Das Neves 2025-03-14 924 621191d709b1488 Nuno Das Neves 2025-03-14 925 if (args.vp_index >= MSHV_MAX_VPS) 621191d709b1488 Nuno Das Neves 2025-03-14 926 return -EINVAL; 621191d709b1488 Nuno Das Neves 2025-03-14 927 621191d709b1488 Nuno Das Neves 2025-03-14 928 if (partition->pt_vp_array[args.vp_index]) 621191d709b1488 Nuno Das Neves 2025-03-14 929 return -EEXIST; 621191d709b1488 Nuno Das Neves 2025-03-14 930 621191d709b1488 Nuno Das Neves 2025-03-14 931 ret = hv_call_create_vp(NUMA_NO_NODE, partition->pt_id, args.vp_index, 621191d709b1488 Nuno Das Neves 2025-03-14 932 0 /* Only valid for root partition VPs */); 621191d709b1488 Nuno Das Neves 2025-03-14 933 if (ret) 621191d709b1488 Nuno Das Neves 2025-03-14 934 return ret; 621191d709b1488 Nuno Das Neves 2025-03-14 935 debba2f23756254 Jinank Jain 2025-09-10 936 ret = hv_map_vp_state_page(partition->pt_id, args.vp_index, 621191d709b1488 Nuno Das Neves 2025-03-14 937 HV_VP_STATE_PAGE_INTERCEPT_MESSAGE, debba2f23756254 Jinank Jain 2025-09-10 938 input_vtl_zero, &intercept_message_page); 621191d709b1488 Nuno Das Neves 2025-03-14 939 if (ret) 621191d709b1488 Nuno Das Neves 2025-03-14 940 goto destroy_vp; 621191d709b1488 Nuno Das Neves 2025-03-14 941 621191d709b1488 Nuno Das Neves 2025-03-14 942 if (!mshv_partition_encrypted(partition)) { debba2f23756254 Jinank Jain 2025-09-10 943 ret = hv_map_vp_state_page(partition->pt_id, args.vp_index, 621191d709b1488 Nuno Das Neves 2025-03-14 944 HV_VP_STATE_PAGE_REGISTERS, debba2f23756254 Jinank Jain 2025-09-10 945 input_vtl_zero, ®ister_page); 621191d709b1488 Nuno Das Neves 2025-03-14 946 if (ret) 621191d709b1488 Nuno Das Neves 2025-03-14 947 goto unmap_intercept_message_page; 621191d709b1488 Nuno Das Neves 2025-03-14 948 } 621191d709b1488 Nuno Das Neves 2025-03-14 949 621191d709b1488 Nuno Das Neves 2025-03-14 950 if (mshv_partition_encrypted(partition) && 621191d709b1488 Nuno Das Neves 2025-03-14 951 is_ghcb_mapping_available()) { debba2f23756254 Jinank Jain 2025-09-10 952 ret = hv_map_vp_state_page(partition->pt_id, args.vp_index, 621191d709b1488 Nuno Das Neves 2025-03-14 953 HV_VP_STATE_PAGE_GHCB, debba2f23756254 Jinank Jain 2025-09-10 954 input_vtl_normal, &ghcb_page); 621191d709b1488 Nuno Das Neves 2025-03-14 955 if (ret) 621191d709b1488 Nuno Das Neves 2025-03-14 956 goto unmap_register_page; 621191d709b1488 Nuno Das Neves 2025-03-14 957 } 621191d709b1488 Nuno Das Neves 2025-03-14 958 1af6cc3b10421f1 Nuno Das Neves 2025-09-10 959 /* 1af6cc3b10421f1 Nuno Das Neves 2025-09-10 960 * This mapping of the stats page is for detecting if dispatch thread 1af6cc3b10421f1 Nuno Das Neves 2025-09-10 961 * is blocked - only relevant for root scheduler 1af6cc3b10421f1 Nuno Das Neves 2025-09-10 962 */ 1af6cc3b10421f1 Nuno Das Neves 2025-09-10 963 if (hv_scheduler_type == HV_SCHEDULER_TYPE_ROOT) { 621191d709b1488 Nuno Das Neves 2025-03-14 964 ret = mshv_vp_stats_map(partition->pt_id, args.vp_index, 621191d709b1488 Nuno Das Neves 2025-03-14 965 stats_pages); 621191d709b1488 Nuno Das Neves 2025-03-14 @966 if (ret) 621191d709b1488 Nuno Das Neves 2025-03-14 967 goto unmap_ghcb_page; 621191d709b1488 Nuno Das Neves 2025-03-14 968 } 621191d709b1488 Nuno Das Neves 2025-03-14 969 621191d709b1488 Nuno Das Neves 2025-03-14 970 vp = kzalloc(sizeof(*vp), GFP_KERNEL); 621191d709b1488 Nuno Das Neves 2025-03-14 971 if (!vp) 621191d709b1488 Nuno Das Neves 2025-03-14 972 goto unmap_stats_pages; 621191d709b1488 Nuno Das Neves 2025-03-14 973 621191d709b1488 Nuno Das Neves 2025-03-14 974 vp->vp_partition = mshv_partition_get(partition); 621191d709b1488 Nuno Das Neves 2025-03-14 975 if (!vp->vp_partition) { 621191d709b1488 Nuno Das Neves 2025-03-14 976 ret = -EBADF; 621191d709b1488 Nuno Das Neves 2025-03-14 977 goto free_vp; 621191d709b1488 Nuno Das Neves 2025-03-14 978 } 621191d709b1488 Nuno Das Neves 2025-03-14 979 621191d709b1488 Nuno Das Neves 2025-03-14 980 mutex_init(&vp->vp_mutex); 621191d709b1488 Nuno Das Neves 2025-03-14 981 init_waitqueue_head(&vp->run.vp_suspend_queue); 621191d709b1488 Nuno Das Neves 2025-03-14 982 atomic64_set(&vp->run.vp_signaled_count, 0); 621191d709b1488 Nuno Das Neves 2025-03-14 983 621191d709b1488 Nuno Das Neves 2025-03-14 984 vp->vp_index = args.vp_index; 621191d709b1488 Nuno Das Neves 2025-03-14 985 vp->vp_intercept_msg_page = page_to_virt(intercept_message_page); 621191d709b1488 Nuno Das Neves 2025-03-14 986 if (!mshv_partition_encrypted(partition)) 621191d709b1488 Nuno Das Neves 2025-03-14 987 vp->vp_register_page = page_to_virt(register_page); 621191d709b1488 Nuno Das Neves 2025-03-14 988 621191d709b1488 Nuno Das Neves 2025-03-14 989 if (mshv_partition_encrypted(partition) && is_ghcb_mapping_available()) 621191d709b1488 Nuno Das Neves 2025-03-14 990 vp->vp_ghcb_page = page_to_virt(ghcb_page); 621191d709b1488 Nuno Das Neves 2025-03-14 991 1af6cc3b10421f1 Nuno Das Neves 2025-09-10 992 if (hv_scheduler_type == HV_SCHEDULER_TYPE_ROOT) 621191d709b1488 Nuno Das Neves 2025-03-14 993 memcpy(vp->vp_stats_pages, stats_pages, sizeof(stats_pages)); 621191d709b1488 Nuno Das Neves 2025-03-14 994 621191d709b1488 Nuno Das Neves 2025-03-14 995 /* 621191d709b1488 Nuno Das Neves 2025-03-14 996 * Keep anon_inode_getfd last: it installs fd in the file struct and 621191d709b1488 Nuno Das Neves 2025-03-14 997 * thus makes the state accessible in user space. 621191d709b1488 Nuno Das Neves 2025-03-14 998 */ 621191d709b1488 Nuno Das Neves 2025-03-14 999 ret = anon_inode_getfd("mshv_vp", &mshv_vp_fops, vp, 621191d709b1488 Nuno Das Neves 2025-03-14 1000 O_RDWR | O_CLOEXEC); 621191d709b1488 Nuno Das Neves 2025-03-14 1001 if (ret < 0) 621191d709b1488 Nuno Das Neves 2025-03-14 1002 goto put_partition; 621191d709b1488 Nuno Das Neves 2025-03-14 1003 621191d709b1488 Nuno Das Neves 2025-03-14 1004 /* already exclusive with the partition mutex for all ioctls */ 621191d709b1488 Nuno Das Neves 2025-03-14 1005 partition->pt_vp_count++; 621191d709b1488 Nuno Das Neves 2025-03-14 1006 partition->pt_vp_array[args.vp_index] = vp; 621191d709b1488 Nuno Das Neves 2025-03-14 1007 621191d709b1488 Nuno Das Neves 2025-03-14 1008 return ret; 621191d709b1488 Nuno Das Neves 2025-03-14 1009 621191d709b1488 Nuno Das Neves 2025-03-14 1010 put_partition: 621191d709b1488 Nuno Das Neves 2025-03-14 1011 mshv_partition_put(partition); 621191d709b1488 Nuno Das Neves 2025-03-14 1012 free_vp: 621191d709b1488 Nuno Das Neves 2025-03-14 1013 kfree(vp); 621191d709b1488 Nuno Das Neves 2025-03-14 1014 unmap_stats_pages: 1af6cc3b10421f1 Nuno Das Neves 2025-09-10 1015 if (hv_scheduler_type == HV_SCHEDULER_TYPE_ROOT) 621191d709b1488 Nuno Das Neves 2025-03-14 1016 mshv_vp_stats_unmap(partition->pt_id, args.vp_index); 621191d709b1488 Nuno Das Neves 2025-03-14 1017 unmap_ghcb_page: debba2f23756254 Jinank Jain 2025-09-10 1018 if (mshv_partition_encrypted(partition) && is_ghcb_mapping_available()) debba2f23756254 Jinank Jain 2025-09-10 1019 hv_unmap_vp_state_page(partition->pt_id, args.vp_index, debba2f23756254 Jinank Jain 2025-09-10 1020 HV_VP_STATE_PAGE_GHCB, vp->vp_ghcb_page, 621191d709b1488 Nuno Das Neves 2025-03-14 1021 input_vtl_normal); 621191d709b1488 Nuno Das Neves 2025-03-14 1022 unmap_register_page: debba2f23756254 Jinank Jain 2025-09-10 1023 if (!mshv_partition_encrypted(partition)) debba2f23756254 Jinank Jain 2025-09-10 1024 hv_unmap_vp_state_page(partition->pt_id, args.vp_index, 621191d709b1488 Nuno Das Neves 2025-03-14 1025 HV_VP_STATE_PAGE_REGISTERS, debba2f23756254 Jinank Jain 2025-09-10 1026 vp->vp_register_page, input_vtl_zero); 621191d709b1488 Nuno Das Neves 2025-03-14 1027 unmap_intercept_message_page: debba2f23756254 Jinank Jain 2025-09-10 1028 hv_unmap_vp_state_page(partition->pt_id, args.vp_index, 621191d709b1488 Nuno Das Neves 2025-03-14 1029 HV_VP_STATE_PAGE_INTERCEPT_MESSAGE, debba2f23756254 Jinank Jain 2025-09-10 1030 vp->vp_intercept_msg_page, input_vtl_zero); 621191d709b1488 Nuno Das Neves 2025-03-14 1031 destroy_vp: 621191d709b1488 Nuno Das Neves 2025-03-14 1032 hv_call_delete_vp(partition->pt_id, args.vp_index); 621191d709b1488 Nuno Das Neves 2025-03-14 1033 return ret; 621191d709b1488 Nuno Das Neves 2025-03-14 1034 } 621191d709b1488 Nuno Das Neves 2025-03-14 1035 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
