All of lore.kernel.org
 help / color / mirror / Atom feed
* [mcgrof:dmabuf-size-ceiling-v7.3-rc3 28/29] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3439:48: sparse: sparse: incorrect type in initializer (different address spaces)
@ 2026-09-25 22:15 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-25 22:15 UTC (permalink / raw)
  To: Luis Chamberlain; +Cc: oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git dmabuf-size-ceiling-v7.3-rc3
head:   837ed875be1a747823a663f160a8122b60c0c88a
commit: c5e054ccaedf0778bd70baf19cc9200fe5a7acc1 [28/29] drm/amdkfd: port AMD Infinity Storage file I/O from the amdgpu driver
config: x86_64-randconfig-1300-20260925 (https://download.01.org/0day-ci/archive/20260926/202609260637.2nNGJAyl-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260926/202609260637.2nNGJAyl-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609260637.2nNGJAyl-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:1304:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __user *src @@     got void * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:1304:42: sparse:     expected void const [noderef] __user *src
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:1304:42: sparse:     got void *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:1413:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __user *src @@     got void * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:1413:42: sparse:     expected void const [noderef] __user *src
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:1413:42: sparse:     got void *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:2348:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const [noderef] __user *src @@     got void * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:2348:45: sparse:     expected void const [noderef] __user *src
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:2348:45: sparse:     got void *
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3439:48: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct kfd_ais_out_args [noderef] __user *out @@     got struct kfd_ais_out_args * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3439:48: sparse:     expected struct kfd_ais_out_args [noderef] __user *out
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3439:48: sparse:     got struct kfd_ais_out_args *
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3510:56: sparse: sparse: incorrect type in argument 5 (different address spaces) @@     expected unsigned long long [usertype] *size_copied @@     got unsigned long long [noderef] __user * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3510:56: sparse:     expected unsigned long long [usertype] *size_copied
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3510:56: sparse:     got unsigned long long [noderef] __user *
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user *out @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     got struct kfd_ais_out_args [noderef] __user *out
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     got struct kfd_ais_out_args [noderef] __user *
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user *out @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     got struct kfd_ais_out_args [noderef] __user *out
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     got struct kfd_ais_out_args [noderef] __user *
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void * @@     got struct kfd_ais_out_args [noderef] __user *out @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     expected void *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     got struct kfd_ais_out_args [noderef] __user *out
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3519:9: sparse:     got struct kfd_ais_out_args [noderef] __user *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user *out @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     got struct kfd_ais_out_args [noderef] __user *out
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     got struct kfd_ais_out_args [noderef] __user *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user *out @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     got struct kfd_ais_out_args [noderef] __user *out
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     got struct kfd_ais_out_args [noderef] __user *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void * @@     got struct kfd_ais_out_args [noderef] __user *out @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     expected void *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     got struct kfd_ais_out_args [noderef] __user *out
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const * @@     got struct kfd_ais_out_args [noderef] __user * @@
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     expected void const *
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3526:9: sparse:     got struct kfd_ais_out_args [noderef] __user *
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3514:17: sparse: sparse: dereference of noderef expression
   drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3525:9: sparse: sparse: dereference of noderef expression

vim +3439 drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c

  3434	
  3435	static int kfd_ioctl_ais(struct file *filep, struct kfd_process *p, void *data)
  3436	{
  3437		struct kfd_ioctl_ais_args *args = data;
  3438		struct kfd_ais_in_args *in = &args->in;
> 3439		struct kfd_ais_out_args __user *out = &args->out, out_args = {0};
  3440		struct kfd_process_device *pdd;
  3441		struct kfd_node *dev;
  3442		struct kgd_mem *mem;
  3443		struct amdgpu_bo *bo;
  3444		int err;
  3445	
  3446		if (in->op != KFD_IOC_AIS_READ && in->op != KFD_IOC_AIS_WRITE) {
  3447			pr_debug("AIS: Invalid operation: %d\n", in->op);
  3448			err = -EINVAL;
  3449			goto err_inval;
  3450		}
  3451	
  3452		if (in->fd < 0) {
  3453			pr_debug("AIS: fd: %d\n", in->fd);
  3454			err = -EINVAL;
  3455			goto err_inval;
  3456		}
  3457	
  3458		mutex_lock(&p->mutex);
  3459		pdd = kfd_process_device_data_by_id(p, GET_GPU_ID(in->handle));
  3460		if (!pdd) {
  3461			pr_debug("AIS: Could not find gpu id 0x%llx\n",
  3462				 GET_GPU_ID(in->handle));
  3463			err = -EINVAL;
  3464			goto err_unlock;
  3465		}
  3466		dev = pdd->dev;
  3467		if (!dev->kfd->ais_initialized) {
  3468			dev_dbg(dev->adev->dev, "AIS: is not initialized for device\n");
  3469			err = -ENODEV;
  3470			goto err_unlock;
  3471		}
  3472	
  3473		pdd = kfd_bind_process_to_device(dev, p);
  3474		if (IS_ERR(pdd)) {
  3475			err = -ESRCH;
  3476			goto err_unlock;
  3477		}
  3478	
  3479		mem = kfd_process_device_translate_handle(pdd,
  3480							  GET_IDR_HANDLE(in->handle));
  3481		if (!mem) {
  3482			err = -EINVAL;
  3483			goto err_unlock;
  3484		}
  3485	
  3486		/* Only VRAM BOs are supported */
  3487		if (mem->domain != AMDGPU_GEM_DOMAIN_VRAM) {
  3488			dev_dbg(dev->adev->dev, "AIS: BO not in VRAM, but in %d\n",
  3489				mem->domain);
  3490			err = -EINVAL;
  3491			goto err_unlock;
  3492		}
  3493	
  3494		/*
  3495		 * Hold a BO reference across the transfer. p->mutex is dropped for
  3496		 * the duration of the I/O, so without this a concurrent
  3497		 * FREE_MEMORY_OF_GPU could free the BO under us.
  3498		 */
  3499		bo = amdgpu_bo_ref(mem->bo);
  3500	
  3501		err = amdgpu_amdkfd_gpuvm_pin_bo(bo, AMDGPU_GEM_DOMAIN_VRAM);
  3502		if (err) {
  3503			pr_err("Pinning of buffer failed.\n");
  3504			amdgpu_bo_unref(&bo);
  3505			goto err_unlock;
  3506		}
  3507	
  3508		mutex_unlock(&p->mutex);
  3509	
> 3510		err = kfd_ais_rw_file(dev->adev, bo, in, pdd, &out_args.size_copied);
  3511		if (err) {
  3512			pr_err("Failed to %s AIS file: %d\n",
  3513			       in->op == KFD_IOC_AIS_READ ? "read" : "write", err);
> 3514			out_args.status = err;
  3515		}
  3516	
  3517		amdgpu_amdkfd_gpuvm_unpin_bo(bo);
  3518		amdgpu_bo_unref(&bo);
> 3519		memcpy(out, &out_args, sizeof(out_args));
  3520		return err;
  3521	
  3522	err_unlock:
  3523		mutex_unlock(&p->mutex);
  3524	err_inval:
  3525		out_args.status = err;
> 3526		memcpy(out, &out_args, sizeof(out_args));
  3527		return err;
  3528	}
  3529	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-25 22:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-25 22:15 [mcgrof:dmabuf-size-ceiling-v7.3-rc3 28/29] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.c:3439:48: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.