[intel-gvt-linux:topic/gvt-xengt 23/41] drivers/gpu/drm/i915/gvt/kvmgt.c:906:45: sparse: cast removes address space of expression
kbuild test robot
lkp at intel.com
Thu Sep 6 17:45:25 UTC 2018
tree: https://github.com/intel/gvt-linux topic/gvt-xengt
head: e9485313393784d0719b531101c3da4f6a66c06b
commit: 0a1bbf8f3ae7cec938d130db1469445270d363c9 [23/41] drm/i915/gvt: Add support to new VFIO subregion VFIO_REGION_SUBTYPE_DEVICE_STATE
reproduce:
# apt-get install sparse
git checkout 0a1bbf8f3ae7cec938d130db1469445270d363c9
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
include/uapi/linux/perf_event.h:147:56: sparse: cast truncates bits from constant value (8000000000000000 becomes 0)
drivers/gpu/drm/i915/gvt/kvmgt.c:431:17: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/gvt/kvmgt.c:431:17: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/gvt/kvmgt.c:530:15: sparse: undefined identifier 'intel_vgpu_register_region'
drivers/gpu/drm/i915/gvt/kvmgt.c:814:21: sparse: incorrect type in assignment (different address spaces) @@ expected void *aperture_va @@ got void [noderef] <avoid *aperture_va @@
drivers/gpu/drm/i915/gvt/kvmgt.c:814:21: expected void *aperture_va
drivers/gpu/drm/i915/gvt/kvmgt.c:814:21: got void [noderef] <asn:2>*
drivers/gpu/drm/i915/gvt/kvmgt.c:825:26: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] <asn:2>*vaddr @@ got sn:2>*vaddr @@
drivers/gpu/drm/i915/gvt/kvmgt.c:825:26: expected void [noderef] <asn:2>*vaddr
drivers/gpu/drm/i915/gvt/kvmgt.c:825:26: got void *aperture_va
>> drivers/gpu/drm/i915/gvt/kvmgt.c:906:45: sparse: cast removes address space of expression
drivers/gpu/drm/i915/gvt/kvmgt.c:984:45: sparse: cast removes address space of expression
drivers/gpu/drm/i915/gvt/kvmgt.c:530:41: sparse: call with no type!
drivers/gpu/drm/i915/gvt/kvmgt.c: In function 'kvmgt_init_migration':
drivers/gpu/drm/i915/gvt/kvmgt.c:530:8: error: implicit declaration of function 'intel_vgpu_register_region'; did you mean 'intel_vgpu_register_reg'? [-Werror=implicit-function-declaration]
ret = intel_vgpu_register_region(vgpu,
^~~~~~~~~~~~~~~~~~~~~~~~~~
intel_vgpu_register_reg
cc1: some warnings being treated as errors
vim +906 drivers/gpu/drm/i915/gvt/kvmgt.c
897
898 static ssize_t intel_vgpu_read(struct mdev_device *mdev, char __user *buf,
899 size_t count, loff_t *ppos)
900 {
901 unsigned int done = 0;
902 int ret;
903 unsigned int index = VFIO_PCI_OFFSET_TO_INDEX(*ppos);
904
905 if (index >= VFIO_PCI_NUM_REGIONS)
> 906 return intel_vgpu_rw(mdev, (char *)buf, count, ppos, false);
907
908 while (count) {
909 size_t filled;
910
911 /* Only support GGTT entry 8 bytes read */
912 if (count >= 8 && !(*ppos % 8) &&
913 gtt_entry(mdev, ppos)) {
914 u64 val;
915
916 ret = intel_vgpu_rw(mdev, (char *)&val, sizeof(val),
917 ppos, false);
918 if (ret <= 0)
919 goto read_err;
920
921 if (copy_to_user(buf, &val, sizeof(val)))
922 goto read_err;
923
924 filled = 8;
925 } else if (count >= 4 && !(*ppos % 4)) {
926 u32 val;
927
928 ret = intel_vgpu_rw(mdev, (char *)&val, sizeof(val),
929 ppos, false);
930 if (ret <= 0)
931 goto read_err;
932
933 if (copy_to_user(buf, &val, sizeof(val)))
934 goto read_err;
935
936 filled = 4;
937 } else if (count >= 2 && !(*ppos % 2)) {
938 u16 val;
939
940 ret = intel_vgpu_rw(mdev, (char *)&val, sizeof(val),
941 ppos, false);
942 if (ret <= 0)
943 goto read_err;
944
945 if (copy_to_user(buf, &val, sizeof(val)))
946 goto read_err;
947
948 filled = 2;
949 } else {
950 u8 val;
951
952 ret = intel_vgpu_rw(mdev, &val, sizeof(val), ppos,
953 false);
954 if (ret <= 0)
955 goto read_err;
956
957 if (copy_to_user(buf, &val, sizeof(val)))
958 goto read_err;
959
960 filled = 1;
961 }
962
963 count -= filled;
964 done += filled;
965 *ppos += filled;
966 buf += filled;
967 }
968
969 return done;
970
971 read_err:
972 return -EFAULT;
973 }
974
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
More information about the intel-gvt-dev
mailing list