Re: [PATCH V3 1/4] misc: vop: change the way of allocating vring and device page

kernel test robot
2020-10-22T07:59:06Z

[-- Attachment #1: Type: text/plain, Size: 3037 bytes --]

Hi Sherry,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on soc/for-next linus/master v5.9 next-20201022]
[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]

url: https://github.com/0day-ci/linux/commits/Sherry-Sun/Change-vring-space-from-nomal-memory-to-dma-coherent-memory/20201022-131008
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git f3277cbfba763cd2826396521b9296de67cf1bbc
config: i386-randconfig-s002-20201022 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-dirty
# https://github.com/0day-ci/linux/commit/6851e84ec2f16ab12b04b2a5bf61b05465d450e6
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sherry-Sun/Change-vring-space-from-nomal-memory-to-dma-coherent-memory/20201022-131008
git checkout 6851e84ec2f16ab12b04b2a5bf61b05465d450e6
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

"sparse warnings: (new ones prefixed by >>)"
>> drivers/misc/mic/vop/vop_vringh.c:1052:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long @@ got restricted __le64 [usertype] address @@
>> drivers/misc/mic/vop/vop_vringh.c:1052:29: sparse: expected unsigned long
>> drivers/misc/mic/vop/vop_vringh.c:1052:29: sparse: got restricted __le64 [usertype] address

vim +1052 drivers/misc/mic/vop/vop_vringh.c

1024
1025 static inline int
1026 vop_query_offset(struct vop_vdev *vdev, unsigned long offset,
1027 unsigned long *size, unsigned long *pa)
1028 {
1029 struct vop_device *vpdev = vdev->vpdev;
1030 struct mic_vqconfig *vqconfig = mic_vq_config(vdev->dd);
1031 unsigned long start = MIC_DP_SIZE;
1032 int i;
1033
1034 /*
1035 * MMAP interface is as follows:
1036 * offset region
1037 * 0x0 virtio device_page
1038 * 0x1000 first vring
1039 * 0x1000 + size of 1st vring second vring
1040 * ....
1041 */
1042 if (!offset) {
1043 *pa = virt_to_phys(vpdev->hw_ops->get_dp(vpdev));
1044 *size = MIC_DP_SIZE;
1045 return 0;
1046 }
1047
1048 for (i = 0; i < vdev->dd->num_vq; i++) {
1049 struct vop_vringh *vvr = &vdev->vvr[i];
1050
1051 if (offset == start) {
> 1052 *pa = vqconfig[i].address;
1053 *size = vvr->vring.len;
1054 return 0;
1055 }
1056 start += vvr->vring.len;
1057 }
1058 return -1;
1059 }
1060

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36245 bytes --]