All of lore.kernel.org
 help / color / mirror / Atom feed
* [jens-wiklander-tee:testing/tuxbuild 6/10] drivers/tee/tee_shm.c:258 tee_shm_register_fd() warn: passing zero to 'PTR_ERR'
@ 2025-03-07  8:25 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2025-03-07  8:25 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Etienne Carriere <etienne.carriere@linaro.org>
CC: Jens Wiklander <jens.wiklander@linaro.org>
CC: Olivier Masse <olivier.masse@nxp.com>

tree:   http://git.linaro.org/people/jens.wiklander/linux-tee testing/tuxbuild
head:   f4198d1f9ee51430ec81d02bb21f769cb6fd14c1
commit: 7fc3cd07fc7e055deefa3b33ff9f702ccd9f7864 [6/10] tee: new ioctl to a register tee_shm from a dmabuf file descriptor
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: sh-randconfig-r073-20250307 (https://download.01.org/0day-ci/archive/20250307/202503071648.ViJVMQTh-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 14.2.0

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202503071648.ViJVMQTh-lkp@intel.com/

smatch warnings:
drivers/tee/tee_shm.c:258 tee_shm_register_fd() warn: passing zero to 'PTR_ERR'

vim +/PTR_ERR +258 drivers/tee/tee_shm.c

dc7019b7d0e188 Jens Wiklander   2021-06-14  209  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  210  struct tee_shm *tee_shm_register_fd(struct tee_context *ctx, int fd)
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  211  {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  212  	struct tee_shm_dmabuf_ref *ref;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  213  	int rc;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  214  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  215  	if (!tee_device_get(ctx->teedev))
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  216  		return ERR_PTR(-EINVAL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  217  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  218  	teedev_ctx_get(ctx);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  219  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  220  	ref = kzalloc(sizeof(*ref), GFP_KERNEL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  221  	if (!ref) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  222  		rc = -ENOMEM;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  223  		goto err_put_tee;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  224  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  225  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  226  	refcount_set(&ref->shm.refcount, 1);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  227  	ref->shm.ctx = ctx;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  228  	ref->shm.id = -1;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  229  	ref->shm.flags = TEE_SHM_DMA_BUF;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  230  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  231  	ref->dmabuf = dma_buf_get(fd);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  232  	if (IS_ERR(ref->dmabuf)) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  233  		rc = PTR_ERR(ref->dmabuf);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  234  		goto err_kfree_ref;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  235  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  236  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  237  	rc = tee_heap_update_from_dma_buf(ctx->teedev, ref->dmabuf,
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  238  					  &ref->offset, &ref->shm,
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  239  					  &ref->parent_shm);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  240  	if (!rc)
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  241  		goto out;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  242  	if (rc != -EINVAL)
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  243  		goto err_put_dmabuf;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  244  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  245  	ref->attach = dma_buf_attach(ref->dmabuf, &ctx->teedev->dev);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  246  	if (IS_ERR(ref->attach)) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  247  		rc = PTR_ERR(ref->attach);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  248  		goto err_put_dmabuf;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  249  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  250  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  251  	ref->sgt = dma_buf_map_attachment(ref->attach, DMA_BIDIRECTIONAL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  252  	if (IS_ERR(ref->sgt)) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  253  		rc = PTR_ERR(ref->sgt);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  254  		goto err_detach;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  255  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  256  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  257  	if (sg_nents(ref->sgt->sgl) != 1) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27 @258  		rc = PTR_ERR(ref->sgt->sgl);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  259  		goto err_unmap_attachement;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  260  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  261  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  262  	ref->shm.paddr = page_to_phys(sg_page(ref->sgt->sgl));
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  263  	ref->shm.size = ref->sgt->sgl->length;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  264  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  265  out:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  266  	mutex_lock(&ref->shm.ctx->teedev->mutex);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  267  	ref->shm.id = idr_alloc(&ref->shm.ctx->teedev->idr, &ref->shm,
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  268  				1, 0, GFP_KERNEL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  269  	mutex_unlock(&ref->shm.ctx->teedev->mutex);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  270  	if (ref->shm.id < 0) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  271  		rc = ref->shm.id;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  272  		if (ref->attach)
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  273  			goto err_unmap_attachement;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  274  		goto err_put_dmabuf;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  275  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  276  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  277  	return &ref->shm;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  278  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  279  err_unmap_attachement:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  280  	dma_buf_unmap_attachment(ref->attach, ref->sgt, DMA_BIDIRECTIONAL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  281  err_detach:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  282  	dma_buf_detach(ref->dmabuf, ref->attach);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  283  err_put_dmabuf:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  284  	dma_buf_put(ref->dmabuf);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  285  err_kfree_ref:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  286  	kfree(ref);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  287  err_put_tee:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  288  	teedev_ctx_put(ctx);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  289  	tee_device_put(ctx->teedev);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  290  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  291  	return ERR_PTR(rc);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  292  }
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  293  EXPORT_SYMBOL_GPL(tee_shm_register_fd);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  294  

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [jens-wiklander-tee:testing/tuxbuild 6/10] drivers/tee/tee_shm.c:258 tee_shm_register_fd() warn: passing zero to 'PTR_ERR'
@ 2025-03-07  9:35 Dan Carpenter
  2025-03-17  7:44 ` Jens Wiklander
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2025-03-07  9:35 UTC (permalink / raw)
  To: oe-kbuild, Etienne Carriere
  Cc: lkp, oe-kbuild-all, Jens Wiklander, Olivier Masse

tree:   http://git.linaro.org/people/jens.wiklander/linux-tee testing/tuxbuild
head:   f4198d1f9ee51430ec81d02bb21f769cb6fd14c1
commit: 7fc3cd07fc7e055deefa3b33ff9f702ccd9f7864 [6/10] tee: new ioctl to a register tee_shm from a dmabuf file descriptor
config: sh-randconfig-r073-20250307 (https://download.01.org/0day-ci/archive/20250307/202503071648.ViJVMQTh-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 14.2.0

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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202503071648.ViJVMQTh-lkp@intel.com/

smatch warnings:
drivers/tee/tee_shm.c:258 tee_shm_register_fd() warn: passing zero to 'PTR_ERR'

vim +/PTR_ERR +258 drivers/tee/tee_shm.c

7fc3cd07fc7e05 Etienne Carriere 2016-10-27  210  struct tee_shm *tee_shm_register_fd(struct tee_context *ctx, int fd)
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  211  {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  212  	struct tee_shm_dmabuf_ref *ref;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  213  	int rc;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  214  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  215  	if (!tee_device_get(ctx->teedev))
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  216  		return ERR_PTR(-EINVAL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  217  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  218  	teedev_ctx_get(ctx);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  219  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  220  	ref = kzalloc(sizeof(*ref), GFP_KERNEL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  221  	if (!ref) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  222  		rc = -ENOMEM;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  223  		goto err_put_tee;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  224  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  225  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  226  	refcount_set(&ref->shm.refcount, 1);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  227  	ref->shm.ctx = ctx;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  228  	ref->shm.id = -1;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  229  	ref->shm.flags = TEE_SHM_DMA_BUF;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  230  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  231  	ref->dmabuf = dma_buf_get(fd);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  232  	if (IS_ERR(ref->dmabuf)) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  233  		rc = PTR_ERR(ref->dmabuf);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  234  		goto err_kfree_ref;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  235  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  236  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  237  	rc = tee_heap_update_from_dma_buf(ctx->teedev, ref->dmabuf,
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  238  					  &ref->offset, &ref->shm,
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  239  					  &ref->parent_shm);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  240  	if (!rc)
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  241  		goto out;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  242  	if (rc != -EINVAL)
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  243  		goto err_put_dmabuf;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  244  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  245  	ref->attach = dma_buf_attach(ref->dmabuf, &ctx->teedev->dev);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  246  	if (IS_ERR(ref->attach)) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  247  		rc = PTR_ERR(ref->attach);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  248  		goto err_put_dmabuf;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  249  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  250  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  251  	ref->sgt = dma_buf_map_attachment(ref->attach, DMA_BIDIRECTIONAL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  252  	if (IS_ERR(ref->sgt)) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  253  		rc = PTR_ERR(ref->sgt);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  254  		goto err_detach;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  255  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  256  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  257  	if (sg_nents(ref->sgt->sgl) != 1) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27 @258  		rc = PTR_ERR(ref->sgt->sgl);

This should be "rc = -EINVAL;"

7fc3cd07fc7e05 Etienne Carriere 2016-10-27  259  		goto err_unmap_attachement;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  260  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  261  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  262  	ref->shm.paddr = page_to_phys(sg_page(ref->sgt->sgl));
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  263  	ref->shm.size = ref->sgt->sgl->length;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  264  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  265  out:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  266  	mutex_lock(&ref->shm.ctx->teedev->mutex);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  267  	ref->shm.id = idr_alloc(&ref->shm.ctx->teedev->idr, &ref->shm,
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  268  				1, 0, GFP_KERNEL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  269  	mutex_unlock(&ref->shm.ctx->teedev->mutex);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  270  	if (ref->shm.id < 0) {
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  271  		rc = ref->shm.id;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  272  		if (ref->attach)
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  273  			goto err_unmap_attachement;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  274  		goto err_put_dmabuf;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  275  	}
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  276  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  277  	return &ref->shm;
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  278  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  279  err_unmap_attachement:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  280  	dma_buf_unmap_attachment(ref->attach, ref->sgt, DMA_BIDIRECTIONAL);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  281  err_detach:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  282  	dma_buf_detach(ref->dmabuf, ref->attach);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  283  err_put_dmabuf:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  284  	dma_buf_put(ref->dmabuf);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  285  err_kfree_ref:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  286  	kfree(ref);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  287  err_put_tee:
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  288  	teedev_ctx_put(ctx);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  289  	tee_device_put(ctx->teedev);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  290  
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  291  	return ERR_PTR(rc);
7fc3cd07fc7e05 Etienne Carriere 2016-10-27  292  }

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [jens-wiklander-tee:testing/tuxbuild 6/10] drivers/tee/tee_shm.c:258 tee_shm_register_fd() warn: passing zero to 'PTR_ERR'
  2025-03-07  9:35 Dan Carpenter
@ 2025-03-17  7:44 ` Jens Wiklander
  0 siblings, 0 replies; 3+ messages in thread
From: Jens Wiklander @ 2025-03-17  7:44 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: oe-kbuild, Etienne Carriere, lkp, oe-kbuild-all, Olivier Masse

Hi Dan,

On Fri, Mar 7, 2025 at 10:35 AM Dan Carpenter <dan.carpenter@linaro.org> wrote:
>
> tree:   http://git.linaro.org/people/jens.wiklander/linux-tee testing/tuxbuild
> head:   f4198d1f9ee51430ec81d02bb21f769cb6fd14c1
> commit: 7fc3cd07fc7e055deefa3b33ff9f702ccd9f7864 [6/10] tee: new ioctl to a register tee_shm from a dmabuf file descriptor
> config: sh-randconfig-r073-20250307 (https://download.01.org/0day-ci/archive/20250307/202503071648.ViJVMQTh-lkp@intel.com/config)
> compiler: sh4-linux-gcc (GCC) 14.2.0
>
> 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>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202503071648.ViJVMQTh-lkp@intel.com/
>
> smatch warnings:
> drivers/tee/tee_shm.c:258 tee_shm_register_fd() warn: passing zero to 'PTR_ERR'
>
> vim +/PTR_ERR +258 drivers/tee/tee_shm.c
>
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  210  struct tee_shm *tee_shm_register_fd(struct tee_context *ctx, int fd)
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  211  {
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  212         struct tee_shm_dmabuf_ref *ref;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  213         int rc;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  214
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  215         if (!tee_device_get(ctx->teedev))
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  216                 return ERR_PTR(-EINVAL);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  217
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  218         teedev_ctx_get(ctx);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  219
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  220         ref = kzalloc(sizeof(*ref), GFP_KERNEL);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  221         if (!ref) {
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  222                 rc = -ENOMEM;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  223                 goto err_put_tee;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  224         }
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  225
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  226         refcount_set(&ref->shm.refcount, 1);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  227         ref->shm.ctx = ctx;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  228         ref->shm.id = -1;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  229         ref->shm.flags = TEE_SHM_DMA_BUF;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  230
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  231         ref->dmabuf = dma_buf_get(fd);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  232         if (IS_ERR(ref->dmabuf)) {
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  233                 rc = PTR_ERR(ref->dmabuf);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  234                 goto err_kfree_ref;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  235         }
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  236
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  237         rc = tee_heap_update_from_dma_buf(ctx->teedev, ref->dmabuf,
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  238                                           &ref->offset, &ref->shm,
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  239                                           &ref->parent_shm);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  240         if (!rc)
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  241                 goto out;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  242         if (rc != -EINVAL)
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  243                 goto err_put_dmabuf;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  244
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  245         ref->attach = dma_buf_attach(ref->dmabuf, &ctx->teedev->dev);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  246         if (IS_ERR(ref->attach)) {
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  247                 rc = PTR_ERR(ref->attach);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  248                 goto err_put_dmabuf;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  249         }
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  250
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  251         ref->sgt = dma_buf_map_attachment(ref->attach, DMA_BIDIRECTIONAL);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  252         if (IS_ERR(ref->sgt)) {
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  253                 rc = PTR_ERR(ref->sgt);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  254                 goto err_detach;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  255         }
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  256
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  257         if (sg_nents(ref->sgt->sgl) != 1) {
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27 @258                 rc = PTR_ERR(ref->sgt->sgl);
>
> This should be "rc = -EINVAL;"

You're right, I'll update in the next version.

Thanks,
Jens

>
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  259                 goto err_unmap_attachement;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  260         }
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  261
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  262         ref->shm.paddr = page_to_phys(sg_page(ref->sgt->sgl));
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  263         ref->shm.size = ref->sgt->sgl->length;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  264
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  265  out:
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  266         mutex_lock(&ref->shm.ctx->teedev->mutex);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  267         ref->shm.id = idr_alloc(&ref->shm.ctx->teedev->idr, &ref->shm,
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  268                                 1, 0, GFP_KERNEL);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  269         mutex_unlock(&ref->shm.ctx->teedev->mutex);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  270         if (ref->shm.id < 0) {
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  271                 rc = ref->shm.id;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  272                 if (ref->attach)
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  273                         goto err_unmap_attachement;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  274                 goto err_put_dmabuf;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  275         }
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  276
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  277         return &ref->shm;
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  278
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  279  err_unmap_attachement:
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  280         dma_buf_unmap_attachment(ref->attach, ref->sgt, DMA_BIDIRECTIONAL);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  281  err_detach:
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  282         dma_buf_detach(ref->dmabuf, ref->attach);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  283  err_put_dmabuf:
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  284         dma_buf_put(ref->dmabuf);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  285  err_kfree_ref:
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  286         kfree(ref);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  287  err_put_tee:
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  288         teedev_ctx_put(ctx);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  289         tee_device_put(ctx->teedev);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  290
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  291         return ERR_PTR(rc);
> 7fc3cd07fc7e05 Etienne Carriere 2016-10-27  292  }
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-03-17  7:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-07  8:25 [jens-wiklander-tee:testing/tuxbuild 6/10] drivers/tee/tee_shm.c:258 tee_shm_register_fd() warn: passing zero to 'PTR_ERR' kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2025-03-07  9:35 Dan Carpenter
2025-03-17  7:44 ` Jens Wiklander

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.