Hi Ekansh, kernel test robot noticed the following build warnings: [auto build test WARNING on char-misc/char-misc-testing] [also build test WARNING on char-misc/char-misc-next char-misc/char-misc-linus linus/master v6.12-rc2 next-20241004] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Ekansh-Gupta/misc-fastrpc-Add-CRC-support-using-invokeV2-request/20241007-164734 base: char-misc/char-misc-testing patch link: https://lore.kernel.org/r/20241007084518.3649876-2-quic_ekangupt%40quicinc.com patch subject: [PATCH v1 1/4] misc: fastrpc: Add CRC support using invokeV2 request config: arc-randconfig-001-20241008 (https://download.01.org/0day-ci/archive/20241008/202410080906.2kCMkY5c-lkp@xxxxxxxxx/config) compiler: arc-elf-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241008/202410080906.2kCMkY5c-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202410080906.2kCMkY5c-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): drivers/misc/fastrpc.c: In function 'fastrpc_context_alloc': >> drivers/misc/fastrpc.c:584:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 584 | args = (struct fastrpc_invoke_args *)inv2->inv.args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_init_create_static_process': >> drivers/misc/fastrpc.c:1331:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1331 | ioctl.inv.args = (u64)args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_init_create_process': drivers/misc/fastrpc.c:1464:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1464 | ioctl.inv.args = (u64)args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_release_current_dsp_process': drivers/misc/fastrpc.c:1527:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1527 | ioctl.inv.args = (u64)args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_init_attach': drivers/misc/fastrpc.c:1674:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1674 | ioctl.inv.args = (u64)args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_copy_args': >> drivers/misc/fastrpc.c:1696:19: warning: assignment to '__u64' {aka 'long long unsigned int'} from 'struct fastrpc_invoke_args *' makes integer from pointer without a cast [-Wint-conversion] 1696 | inv->args = args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_invoke': >> drivers/misc/fastrpc.c:1716:18: warning: passing argument 1 of 'kfree' makes pointer from integer without a cast [-Wint-conversion] 1716 | kfree(inv.args); | ~~~^~~~~ | | | __u64 {aka long long unsigned int} In file included from include/linux/mm.h:33, from include/linux/scatterlist.h:8, from include/linux/dma-buf.h:19, from drivers/misc/fastrpc.c:7: include/linux/slab.h:446:24: note: expected 'const void *' but argument is of type '__u64' {aka 'long long unsigned int'} 446 | void kfree(const void *objp); | ~~~~~~~~~~~~^~~~ drivers/misc/fastrpc.c: In function 'fastrpc_invokev2': drivers/misc/fastrpc.c:1734:23: warning: passing argument 1 of 'kfree' makes pointer from integer without a cast [-Wint-conversion] 1734 | kfree(inv2.inv.args); | ~~~~~~~~^~~~~ | | | __u64 {aka long long unsigned int} include/linux/slab.h:446:24: note: expected 'const void *' but argument is of type '__u64' {aka 'long long unsigned int'} 446 | void kfree(const void *objp); | ~~~~~~~~~~~~^~~~ drivers/misc/fastrpc.c: In function 'fastrpc_get_info_from_dsp': drivers/misc/fastrpc.c:1762:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1762 | ioctl.inv.args = (u64)args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_req_munmap_impl': drivers/misc/fastrpc.c:1864:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1864 | ioctl.inv.args = (u64)args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_req_mmap': drivers/misc/fastrpc.c:1961:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 1961 | ioctl.inv.args = (u64)args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_req_mem_unmap_impl': drivers/misc/fastrpc.c:2042:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 2042 | ioctl.inv.args = (u64)args; | ^ drivers/misc/fastrpc.c: In function 'fastrpc_req_mem_map': drivers/misc/fastrpc.c:2112:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 2112 | ioctl.inv.args = (u64)args; | ^ vim +584 drivers/misc/fastrpc.c 573 574 static struct fastrpc_invoke_ctx *fastrpc_context_alloc( 575 struct fastrpc_user *user, u32 kernel, u32 sc, 576 struct fastrpc_invoke_v2 *inv2) 577 { 578 struct fastrpc_channel_ctx *cctx = user->cctx; 579 struct fastrpc_invoke_ctx *ctx = NULL; 580 struct fastrpc_invoke_args *args = NULL; 581 unsigned long flags; 582 int ret; 583 > 584 args = (struct fastrpc_invoke_args *)inv2->inv.args; 585 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); 586 if (!ctx) 587 return ERR_PTR(-ENOMEM); 588 589 INIT_LIST_HEAD(&ctx->node); 590 ctx->fl = user; 591 ctx->nscalars = REMOTE_SCALARS_LENGTH(sc); 592 ctx->nbufs = REMOTE_SCALARS_INBUFS(sc) + 593 REMOTE_SCALARS_OUTBUFS(sc); 594 595 if (ctx->nscalars) { 596 ctx->maps = kcalloc(ctx->nscalars, 597 sizeof(*ctx->maps), GFP_KERNEL); 598 if (!ctx->maps) { 599 kfree(ctx); 600 return ERR_PTR(-ENOMEM); 601 } 602 ctx->olaps = kcalloc(ctx->nscalars, 603 sizeof(*ctx->olaps), GFP_KERNEL); 604 if (!ctx->olaps) { 605 kfree(ctx->maps); 606 kfree(ctx); 607 return ERR_PTR(-ENOMEM); 608 } 609 ctx->args = args; 610 fastrpc_get_buff_overlaps(ctx); 611 } 612 613 /* Released in fastrpc_context_put() */ 614 fastrpc_channel_ctx_get(cctx); 615 616 ctx->crc = (u32 *)(uintptr_t)inv2->crc; 617 ctx->sc = sc; 618 ctx->retval = -1; 619 ctx->pid = current->pid; 620 ctx->tgid = user->tgid; 621 ctx->cctx = cctx; 622 init_completion(&ctx->work); 623 INIT_WORK(&ctx->put_work, fastrpc_context_put_wq); 624 625 spin_lock(&user->lock); 626 list_add_tail(&ctx->node, &user->pending); 627 spin_unlock(&user->lock); 628 629 spin_lock_irqsave(&cctx->lock, flags); 630 ret = idr_alloc_cyclic(&cctx->ctx_idr, ctx, 1, 631 FASTRPC_CTX_MAX, GFP_ATOMIC); 632 if (ret < 0) { 633 spin_unlock_irqrestore(&cctx->lock, flags); 634 goto err_idr; 635 } 636 ctx->ctxid = ret << 4; 637 spin_unlock_irqrestore(&cctx->lock, flags); 638 639 kref_init(&ctx->refcount); 640 641 return ctx; 642 err_idr: 643 spin_lock(&user->lock); 644 list_del(&ctx->node); 645 spin_unlock(&user->lock); 646 fastrpc_channel_ctx_put(cctx); 647 kfree(ctx->maps); 648 kfree(ctx->olaps); 649 kfree(ctx); 650 651 return ERR_PTR(ret); 652 } 653 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki