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/[email protected]/config)
compiler: s390-linux-gcc (GCC) 12.3.0
reproduce: 
(https://download.01.org/0day-ci/archive/20230805/[email protected]/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 <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

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

Reply via email to