Re: [PATCH v7 5/5] misc: fastrpc: Add support to allocate shared context bank

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ekansh,

kernel test robot noticed the following build warnings:

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-fastrpc-multimode-invoke-request-support/20231121-175147
base:   linus/master
patch link:    https://lore.kernel.org/r/20231121094844.5764-6-quic_ekangupt%40quicinc.com
patch subject: [PATCH v7 5/5] misc: fastrpc: Add support to allocate shared context bank
config: arm-randconfig-r081-20231123 (https://download.01.org/0day-ci/archive/20231125/202311250922.W9tgrGT9-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231125/202311250922.W9tgrGT9-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>
| Reported-by: Dan Carpenter <error27@xxxxxxxxx>
| Closes: https://lore.kernel.org/r/202311250922.W9tgrGT9-lkp@xxxxxxxxx/

New smatch warnings:
drivers/misc/fastrpc.c:1621 fastrpc_init_create_process() warn: missing unwind goto?

vim +1621 drivers/misc/fastrpc.c

d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1576  static int fastrpc_init_create_process(struct fastrpc_user *fl,
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1577  					char __user *argp)
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1578  {
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1579  	struct fastrpc_init_create init;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1580  	struct fastrpc_invoke_args *args;
becdceed7669e5 Ekansh Gupta             2023-11-21  1581  	struct fastrpc_enhanced_invoke ioctl;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1582  	struct fastrpc_phy_page pages[1];
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1583  	struct fastrpc_map *map = NULL;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1584  	struct fastrpc_buf *imem = NULL;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1585  	int memlen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1586  	int err;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1587  	struct {
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1588  		int pgid;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1589  		u32 namelen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1590  		u32 filelen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1591  		u32 pageslen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1592  		u32 attrs;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1593  		u32 siglen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1594  	} inbuf;
7f1f481263c3ce Jeya R                   2022-02-14  1595  	bool unsigned_module = false;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1596  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1597  	args = kcalloc(FASTRPC_CREATE_PROCESS_NARGS, sizeof(*args), GFP_KERNEL);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1598  	if (!args)
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1599  		return -ENOMEM;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1600  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1601  	if (copy_from_user(&init, argp, sizeof(init))) {
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1602  		err = -EFAULT;
b49f6d83e290f1 Thierry Escande          2019-03-07  1603  		goto err;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1604  	}
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1605  
7f1f481263c3ce Jeya R                   2022-02-14  1606  	if (init.attrs & FASTRPC_MODE_UNSIGNED_MODULE)
7f1f481263c3ce Jeya R                   2022-02-14  1607  		unsigned_module = true;
7f1f481263c3ce Jeya R                   2022-02-14  1608  
7f1f481263c3ce Jeya R                   2022-02-14  1609  	if (is_session_rejected(fl, unsigned_module)) {
7f1f481263c3ce Jeya R                   2022-02-14  1610  		err = -ECONNREFUSED;
7f1f481263c3ce Jeya R                   2022-02-14  1611  		goto err;
7f1f481263c3ce Jeya R                   2022-02-14  1612  	}
7f1f481263c3ce Jeya R                   2022-02-14  1613  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1614  	if (init.filelen > INIT_FILELEN_MAX) {
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1615  		err = -EINVAL;
b49f6d83e290f1 Thierry Escande          2019-03-07  1616  		goto err;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1617  	}
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1618  
92fe4bcba19c31 Ekansh Gupta             2023-11-21  1619  	fl->sctx = fastrpc_session_alloc(fl->cctx, fl->sharedcb);
92fe4bcba19c31 Ekansh Gupta             2023-11-21  1620  	if (!fl->sctx)
92fe4bcba19c31 Ekansh Gupta             2023-11-21 @1621  		return -EBUSY;

Should be "ret = -EBUSY; goto err;".

92fe4bcba19c31 Ekansh Gupta             2023-11-21  1622  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1623  	inbuf.pgid = fl->tgid;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1624  	inbuf.namelen = strlen(current->comm) + 1;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1625  	inbuf.filelen = init.filelen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1626  	inbuf.pageslen = 1;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1627  	inbuf.attrs = init.attrs;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1628  	inbuf.siglen = init.siglen;
84195d206e1fbd Jonathan Marek           2020-09-08  1629  	fl->pd = USER_PD;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1630  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1631  	if (init.filelen && init.filefd) {
e90d911906196b Vamsi Krishna Gattupalli 2022-02-14  1632  		err = fastrpc_map_create(fl, init.filefd, init.filelen, 0, &map);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1633  		if (err)
b49f6d83e290f1 Thierry Escande          2019-03-07  1634  			goto err;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1635  	}
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1636  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1637  	memlen = ALIGN(max(INIT_FILELEN_MAX, (int)init.filelen * 4),
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1638  		       1024 * 1024);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1639  	err = fastrpc_buf_alloc(fl, fl->sctx->dev, memlen,
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1640  				&imem);
b49f6d83e290f1 Thierry Escande          2019-03-07  1641  	if (err)
b49f6d83e290f1 Thierry Escande          2019-03-07  1642  		goto err_alloc;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1643  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1644  	fl->init_mem = imem;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1645  	args[0].ptr = (u64)(uintptr_t)&inbuf;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1646  	args[0].length = sizeof(inbuf);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1647  	args[0].fd = -1;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1648  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1649  	args[1].ptr = (u64)(uintptr_t)current->comm;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1650  	args[1].length = inbuf.namelen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1651  	args[1].fd = -1;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1652  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1653  	args[2].ptr = (u64) init.file;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1654  	args[2].length = inbuf.filelen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1655  	args[2].fd = init.filefd;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1656  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1657  	pages[0].addr = imem->phys;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1658  	pages[0].size = imem->size;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1659  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1660  	args[3].ptr = (u64)(uintptr_t) pages;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1661  	args[3].length = 1 * sizeof(*pages);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1662  	args[3].fd = -1;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1663  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1664  	args[4].ptr = (u64)(uintptr_t)&inbuf.attrs;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1665  	args[4].length = sizeof(inbuf.attrs);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1666  	args[4].fd = -1;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1667  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1668  	args[5].ptr = (u64)(uintptr_t) &inbuf.siglen;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1669  	args[5].length = sizeof(inbuf.siglen);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1670  	args[5].fd = -1;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1671  
becdceed7669e5 Ekansh Gupta             2023-11-21  1672  	ioctl.inv.handle = FASTRPC_INIT_HANDLE;
becdceed7669e5 Ekansh Gupta             2023-11-21  1673  	ioctl.inv.sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_CREATE, 4, 0);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1674  	if (init.attrs)
becdceed7669e5 Ekansh Gupta             2023-11-21  1675  		ioctl.inv.sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_CREATE_ATTR, 4, 0);
e27748f5c08306 Ekansh Gupta             2023-11-21  1676  	ioctl.inv.args = (u64)args;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1677  
becdceed7669e5 Ekansh Gupta             2023-11-21  1678  	err = fastrpc_internal_invoke(fl, true, &ioctl);
b49f6d83e290f1 Thierry Escande          2019-03-07  1679  	if (err)
b49f6d83e290f1 Thierry Escande          2019-03-07  1680  		goto err_invoke;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1681  
b49f6d83e290f1 Thierry Escande          2019-03-07  1682  	kfree(args);
b49f6d83e290f1 Thierry Escande          2019-03-07  1683  
b49f6d83e290f1 Thierry Escande          2019-03-07  1684  	return 0;
b49f6d83e290f1 Thierry Escande          2019-03-07  1685  
b49f6d83e290f1 Thierry Escande          2019-03-07  1686  err_invoke:
b49f6d83e290f1 Thierry Escande          2019-03-07  1687  	fl->init_mem = NULL;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1688  	fastrpc_buf_free(imem);
b49f6d83e290f1 Thierry Escande          2019-03-07  1689  err_alloc:
b49f6d83e290f1 Thierry Escande          2019-03-07  1690  	fastrpc_map_put(map);
b49f6d83e290f1 Thierry Escande          2019-03-07  1691  err:
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1692  	kfree(args);
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1693  
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1694  	return err;
d73f71c7c6ee15 Srinivas Kandagatla      2019-02-08  1695  }

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





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux