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@xxxxxxxxx/config) compiler: s390-linux-gcc (GCC) 12.3.0 reproduce: (https://download.01.org/0day-ci/archive/20230805/202308051951.bErKWZ2A-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/202308051951.bErKWZ2A-lkp@xxxxxxxxx/ 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