* [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.