Re: [PATCH v4 5/6] optee: FF-A: dynamic restricted memory allocation

kernel test robot
2024-12-20T14:38:53Z

[-- Attachment #1: Type: text/plain, Size: 5259 bytes --]

Hi Jens,

kernel test robot noticed the following build errors:

[auto build test ERROR on fac04efc5c793dccbd07e2d59af9f90b7fc0dca4]

url: https://github.com/intel-lab-lkp/linux/commits/Jens-Wiklander/tee-add-restricted-memory-allocation/20241217-181101
base: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4
patch link: https://lore.kernel.org/r/20241217100809.3962439-6-jens.wiklander%40linaro.org
patch subject: [PATCH v4 5/6] optee: FF-A: dynamic restricted memory allocation
config: arm64-randconfig-002-20241220 (https://download.01.org/0day-ci/archive/20241220/202412202214.OdgzpOke-lkp(a)intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241220/202412202214.OdgzpOke-lkp(a)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/202412202214.OdgzpOke-lkp(a)intel.com/

All errors (new ones prefixed by >>):

In file included from drivers/tee/optee/rstmem.c:8:
In file included from include/linux/dma-map-ops.h:9:
In file included from include/linux/dma-mapping.h:8:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:2223:
include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> drivers/tee/optee/rstmem.c:311:67: error: expected ')'
311 | static struct tee_shm_pool *alloc_rstmem_pool(struct optee *optee __unused,
| ^
drivers/tee/optee/rstmem.c:311:46: note: to match this '('
311 | static struct tee_shm_pool *alloc_rstmem_pool(struct optee *optee __unused,
| ^
>> drivers/tee/optee/rstmem.c:332:35: error: too many arguments to function call, expected single argument 'optee', have 2 arguments
332 | pool = alloc_rstmem_pool(optee, use_case);
| ~~~~~~~~~~~~~~~~~ ^~~~~~~~
drivers/tee/optee/rstmem.c:311:29: note: 'alloc_rstmem_pool' declared here
311 | static struct tee_shm_pool *alloc_rstmem_pool(struct optee *optee __unused,
| ^ ~~~~~~~~~~~~~~~~~~~
1 warning and 2 errors generated.

vim +311 drivers/tee/optee/rstmem.c

268
269 static struct tee_shm_pool *alloc_rstmem_pool(struct optee *optee, u32 use_case)
270 {
271 struct optee_rstmem_cma_pool *rp;
272 size_t min_size;
273 int rc;
274
275 rp = kzalloc(sizeof(*rp), GFP_KERNEL);
276 if (!rp)
277 return ERR_PTR(-ENOMEM);
278 rp->rstmem.use_case = use_case;
279
280 rc = get_rstmem_config(optee, use_case, &min_size, &rp->align, NULL,
281 &rp->end_point_count);
282 if (rc) {
283 if (rc != -ENOSPC)
284 goto err;
285 rp->end_points = kcalloc(rp->end_point_count,
286 sizeof(*rp->end_points), GFP_KERNEL);
287 if (!rp->end_points) {
288 rc = -ENOMEM;
289 goto err;
290 }
291 rc = get_rstmem_config(optee, use_case, &min_size, &rp->align,
292 rp->end_points, &rp->end_point_count);
293 if (rc)
294 goto err_kfree_eps;
295 }
296
297 rp->pool.ops = &rstmem_pool_ops_cma;
298 rp->optee = optee;
299 rp->page_count = min_size / PAGE_SIZE;
300 mutex_init(&rp->mutex);
301
302 return &rp->pool;
303
304 err_kfree_eps:
305 kfree(rp->end_points);
306 err:
307 kfree(rp);
308 return ERR_PTR(rc);
309 }
310 #else /*CONFIG_CMA*/
> 311 static struct tee_shm_pool *alloc_rstmem_pool(struct optee *optee __unused,
312 u32 use_case __unused)
313 {
314 return ERR_PTR(-EINVAL);
315 }
316 #endif /*CONFIG_CMA*/
317
318 int optee_rstmem_alloc(struct tee_context *ctx, struct tee_shm *shm,
319 u32 flags, u32 use_case, size_t size)
320 {
321 struct optee *optee = tee_get_drvdata(ctx->teedev);
322 struct tee_shm_pool *pool;
323 int rc;
324
325 if (!optee->rstmem_pools)
326 return -EINVAL;
327 if (flags)
328 return -EINVAL;
329
330 pool = xa_load(&optee->rstmem_pools->xa, use_case);
331 if (!pool) {
> 332 pool = alloc_rstmem_pool(optee, use_case);
333 if (IS_ERR(pool))
334 return PTR_ERR(pool);
335 rc = xa_insert(&optee->rstmem_pools->xa, use_case, pool,
336 GFP_KERNEL);
337 if (rc) {
338 pool->ops->destroy_pool(pool);
339 return rc;
340 }
341 }
342
343 return pool->ops->alloc(pool, shm, size, 0);
344 }
345

--
0-DAY CI Kernel Test Service