Re: [PATCH] mshv: Add dedicated ioctl for GVA to GPA translation
From: kernel test robot
Date: Sat May 02 2026 - 09:13:18 EST
Hi Stanislav,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v7.1-rc1 next-20260430]
[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/Stanislav-Kinsburskii/mshv-Add-dedicated-ioctl-for-GVA-to-GPA-translation/20260429-094326
base: linus/master
patch link: https://lore.kernel.org/r/177741648871.626779.11067281081219290277.stgit%40skinsburskii-cloud-desktop.internal.cloudapp.net
patch subject: [PATCH] mshv: Add dedicated ioctl for GVA to GPA translation
config: x86_64-randconfig-123-20260430 (https://download.01.org/0day-ci/archive/20260502/202605022145.mMqA1AEU-lkp@xxxxxxxxx/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260502/202605022145.mMqA1AEU-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605022145.mMqA1AEU-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
>> drivers/hv/mshv_root_main.c:958:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned int enum hv_translate_gva_result_code *[addressable] result @@
drivers/hv/mshv_root_main.c:958:30: sparse: expected void [noderef] __user *to
drivers/hv/mshv_root_main.c:958:30: sparse: got unsigned int enum hv_translate_gva_result_code *[addressable] result
>> drivers/hv/mshv_root_main.c:961:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long long [usertype] *[addressable] gpa @@
drivers/hv/mshv_root_main.c:961:30: sparse: expected void [noderef] __user *to
drivers/hv/mshv_root_main.c:961:30: sparse: got unsigned long long [usertype] *[addressable] gpa
vim +958 drivers/hv/mshv_root_main.c
913
914 static long
915 mshv_vp_ioctl_translate_gva(struct mshv_vp *vp, void __user *user_args)
916 {
917 struct mshv_partition *partition = vp->vp_partition;
918 struct mshv_translate_gva args;
919 struct hv_translate_gva_result_ex result;
920 u64 gfn, gpa;
921 int ret;
922
923 if (copy_from_user(&args, user_args, sizeof(args)))
924 return -EFAULT;
925
926 do {
927 ret = hv_call_translate_virtual_address_ex(vp->vp_index,
928 partition->pt_id,
929 args.flags, args.gva,
930 &gfn, &result);
931 if (ret)
932 return ret;
933
934 if (mshv_gpa_fault_retryable(result.result_code)) {
935 struct mshv_mem_region *region;
936 bool faulted;
937
938 region = mshv_partition_region_by_gfn_get(partition,
939 gfn);
940 if (!region)
941 return -EFAULT;
942
943 faulted = false;
944 if (region->mreg_type == MSHV_REGION_TYPE_MEM_MOVABLE)
945 faulted = mshv_region_handle_gfn_fault(region,
946 gfn);
947 mshv_region_put(region);
948
949 if (!faulted)
950 return -EFAULT;
951
952 cond_resched();
953 }
954 } while (mshv_gpa_fault_retryable(result.result_code));
955
956 gpa = (gfn << PAGE_SHIFT) | (args.gva & ~PAGE_MASK);
957
> 958 if (copy_to_user(args.result, &result, sizeof(*args.result)))
959 return -EFAULT;
960
> 961 if (copy_to_user(args.gpa, &gpa, sizeof(*args.gpa)))
962 return -EFAULT;
963
964 return 0;
965 }
966
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki