[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202509120214.YMomVkdP-lkp@intel.com>
Date: Fri, 12 Sep 2025 03:05:26 +0800
From: kernel test robot <lkp@...el.com>
To: Nuno Das Neves <nunodasneves@...ux.microsoft.com>,
linux-hyperv@...r.kernel.org, linux-kernel@...r.kernel.org,
prapal@...ux.microsoft.com, easwar.hariharan@...ux.microsoft.com,
tiala@...rosoft.com, anirudh@...rudhrb.com,
paekkaladevi@...ux.microsoft.com
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev, kys@...rosoft.com,
haiyangz@...rosoft.com, wei.liu@...nel.org, decui@...rosoft.com,
Jinank Jain <jinankjain@...ux.microsoft.com>,
Nuno Das Neves <nunodasneves@...ux.microsoft.com>
Subject: Re: [PATCH v2 4/5] mshv: Allocate vp state page for
HVCALL_MAP_VP_STATE_PAGE on L1VH
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/202509120214.YMomVkdP-lkp@intel.com/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/202509120214.YMomVkdP-lkp@intel.com/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 <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509120214.YMomVkdP-lkp@intel.com/
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
Powered by blists - more mailing lists