[drm-misc:for-linux-next 11/12] drivers/gpu/drm/nouveau/nouveau_exec.c:299:19: sparse: sparse: dereference of noderef expression
kernel test robot
lkp at intel.com
Sat Aug 5 11:19:11 UTC 2023
tree: git://anongit.freedesktop.org/drm/drm-misc for-linux-next
head: 82d750e9d2f5d0594c8f7057ce59127e701af781
commit: b88baab828713ce0b49b185444b2ee83bed373a8 [11/12] drm/nouveau: implement new VM_BIND uAPI
config: s390-randconfig-r071-20230730 (https://download.01.org/0day-ci/archive/20230805/202308051951.bErKWZ2A-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230805/202308051951.bErKWZ2A-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308051951.bErKWZ2A-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/nouveau/nouveau_exec.c:299:19: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_exec.c:300:19: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_exec.c:301:20: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_exec.c:302:20: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_exec.c:303:21: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_exec.c:304:21: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_exec.c:374:43: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_exec.c:389:13: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_exec.c:390:17: sparse: sparse: dereference of noderef expression
--
drivers/gpu/drm/nouveau/nouveau_drm.c:401:41: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nouveau_drm.c:401:41: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nouveau_drm.c:402:41: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nouveau_drm.c:402:41: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nouveau_drm.c:402:41: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nouveau_drm.c:402:41: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nouveau_drm.c:406:33: sparse: sparse: cast removes address space '__iomem' of expression
drivers/gpu/drm/nouveau/nouveau_drm.c:406:33: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/gpu/drm/nouveau/nouveau_drm.c:1214:9: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@ expected int ( [usertype] *func )( ... ) @@ got int ( * )( ... ) @@
drivers/gpu/drm/nouveau/nouveau_drm.c:1214:9: sparse: expected int ( [usertype] *func )( ... )
drivers/gpu/drm/nouveau/nouveau_drm.c:1214:9: sparse: got int ( * )( ... )
drivers/gpu/drm/nouveau/nouveau_drm.c:1215:9: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@ expected int ( [usertype] *func )( ... ) @@ got int ( * )( ... ) @@
drivers/gpu/drm/nouveau/nouveau_drm.c:1215:9: sparse: expected int ( [usertype] *func )( ... )
drivers/gpu/drm/nouveau/nouveau_drm.c:1215:9: sparse: got int ( * )( ... )
drivers/gpu/drm/nouveau/nouveau_drm.c:1216:9: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@ expected int ( [usertype] *func )( ... ) @@ got int ( * )( ... ) @@
drivers/gpu/drm/nouveau/nouveau_drm.c:1216:9: sparse: expected int ( [usertype] *func )( ... )
drivers/gpu/drm/nouveau/nouveau_drm.c:1216:9: sparse: got int ( * )( ... )
--
drivers/gpu/drm/nouveau/nouveau_uvmm.c:1656:1: sparse: sparse: symbol 'nouveau_uvmm_ioctl_vm_init' redeclared with different type (incompatible argument 2 (different address spaces)):
>> drivers/gpu/drm/nouveau/nouveau_uvmm.c:1656:1: sparse: int extern [addressable] [signed] [toplevel] nouveau_uvmm_ioctl_vm_init( ... )
drivers/gpu/drm/nouveau/nouveau_uvmm.c: note: in included file (through drivers/gpu/drm/nouveau/nouveau_drv.h):
drivers/gpu/drm/nouveau/nouveau_uvmm.h:92:5: sparse: note: previously declared as:
>> drivers/gpu/drm/nouveau/nouveau_uvmm.h:92:5: sparse: int extern [addressable] [signed] [toplevel] nouveau_uvmm_ioctl_vm_init( ... )
drivers/gpu/drm/nouveau/nouveau_uvmm.c:283:17: sparse: sparse: context imbalance in '__nouveau_uvma_region_insert' - unexpected unlock
>> drivers/gpu/drm/nouveau/nouveau_uvmm.c:1693:19: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_uvmm.c:1694:19: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_uvmm.c:1695:20: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_uvmm.c:1696:20: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_uvmm.c:1697:19: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_uvmm.c:1698:19: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/nouveau/nouveau_uvmm.c:1701:23: sparse: sparse: dereference of noderef expression
vim +299 drivers/gpu/drm/nouveau/nouveau_exec.c
293
294 static int
295 nouveau_exec_ucopy(struct nouveau_exec_job_args *args,
296 struct drm_nouveau_exec __user *req)
297 {
298 struct drm_nouveau_sync **s;
> 299 u32 inc = req->wait_count;
300 u64 ins = req->wait_ptr;
301 u32 outc = req->sig_count;
302 u64 outs = req->sig_ptr;
303 u32 pushc = req->push_count;
304 u64 pushs = req->push_ptr;
305 int ret;
306
307 if (pushc) {
308 args->push.count = pushc;
309 args->push.s = u_memcpya(pushs, pushc, sizeof(*args->push.s));
310 if (IS_ERR(args->push.s))
311 return PTR_ERR(args->push.s);
312 }
313
314 if (inc) {
315 s = &args->in_sync.s;
316
317 args->in_sync.count = inc;
318 *s = u_memcpya(ins, inc, sizeof(**s));
319 if (IS_ERR(*s)) {
320 ret = PTR_ERR(*s);
321 goto err_free_pushs;
322 }
323 }
324
325 if (outc) {
326 s = &args->out_sync.s;
327
328 args->out_sync.count = outc;
329 *s = u_memcpya(outs, outc, sizeof(**s));
330 if (IS_ERR(*s)) {
331 ret = PTR_ERR(*s);
332 goto err_free_ins;
333 }
334 }
335
336 return 0;
337
338 err_free_pushs:
339 u_free(args->push.s);
340 err_free_ins:
341 u_free(args->in_sync.s);
342 return ret;
343 }
344
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the dri-devel
mailing list