[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