Re: [PATCH v2 4/7] remoteproc: core: Use cleanup.h macros to simplify lock handling

Dan Carpenter
2025-10-14T08:39:57Z

Hi Peng,

kernel test robot noticed the following build warnings:

url: https://github.com/intel-lab-lkp/linux/commits/Peng-Fan/remoteproc-core-Drop-redundant-initialization-of-ret-in-rproc_shutdown/20251010-202737
base: 3b9b1f8df454caa453c7fb07689064edb2eda90a
patch link: https://lore.kernel.org/r/20251010-remoteproc-cleanup-v2-4-7cecf1bfd81c%40nxp.com
patch subject: [PATCH v2 4/7] remoteproc: core: Use cleanup.h macros to simplify lock handling
config: i386-randconfig-141-20251012 (https://download.01.org/0day-ci/archive/20251012/202510121908.7aduLIkw-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 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/202510121908.7aduLIkw-lkp@intel.com/

smatch warnings:
drivers/remoteproc/remoteproc_core.c:1841 rproc_trigger_recovery() warn: missing error code? 'ret'
drivers/remoteproc/remoteproc_core.c:1993 rproc_shutdown() warn: missing error code? 'ret'

vim +/ret +1841 drivers/remoteproc/remoteproc_core.c

70b85ef83ce3523 Fernando Guzman Lugo 2012-08-30 1829 int rproc_trigger_recovery(struct rproc *rproc)
70b85ef83ce3523 Fernando Guzman Lugo 2012-08-30 1830 {
7e83cab824a8670 Sarangdhar Joshi 2017-05-26 1831 struct device *dev = &rproc->dev;
7e83cab824a8670 Sarangdhar Joshi 2017-05-26 1832 int ret;
7e83cab824a8670 Sarangdhar Joshi 2017-05-26 1833
c42baf6f84c7694 Peng Fan 2025-10-10 1834 ACQUIRE(mutex_intr, lock)(&rproc->lock);
c42baf6f84c7694 Peng Fan 2025-10-10 1835 ret = ACQUIRE_ERR(mutex_intr, &lock);
7e83cab824a8670 Sarangdhar Joshi 2017-05-26 1836 if (ret)
7e83cab824a8670 Sarangdhar Joshi 2017-05-26 1837 return ret;
7e83cab824a8670 Sarangdhar Joshi 2017-05-26 1838
0b145574b6cd2b3 Alex Elder 2020-02-28 1839 /* State could have changed before we got the mutex */
0b145574b6cd2b3 Alex Elder 2020-02-28 1840 if (rproc->state != RPROC_CRASHED)
c42baf6f84c7694 Peng Fan 2025-10-10 @1841 return ret;

Please change this to either "return 0;" or "return -ERRORCODE;"

0b145574b6cd2b3 Alex Elder 2020-02-28 1842
0b145574b6cd2b3 Alex Elder 2020-02-28 1843 dev_err(dev, "recovering %s\n", rproc->name);
0b145574b6cd2b3 Alex Elder 2020-02-28 1844
ba194232edc032b Peng Fan 2022-09-28 1845 if (rproc_has_feature(rproc, RPROC_FEAT_ATTACH_ON_RECOVERY))
ba194232edc032b Peng Fan 2022-09-28 1846 ret = rproc_attach_recovery(rproc);
ba194232edc032b Peng Fan 2022-09-28 1847 else
ba194232edc032b Peng Fan 2022-09-28 1848 ret = rproc_boot_recovery(rproc);
7e83cab824a8670 Sarangdhar Joshi 2017-05-26 1849
7e83cab824a8670 Sarangdhar Joshi 2017-05-26 1850 return ret;
70b85ef83ce3523 Fernando Guzman Lugo 2012-08-30 1851 }

[ snip ]

c13b780c4597e1e Suman Anna 2022-02-13 1976 int rproc_shutdown(struct rproc *rproc)
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1977 {
b5ab5e24e960b9f Ohad Ben-Cohen 2012-05-30 1978 struct device *dev = &rproc->dev;
ee3d85da617a065 Peng Fan 2025-10-10 1979 int ret;
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1980
c42baf6f84c7694 Peng Fan 2025-10-10 1981 ACQUIRE(mutex_intr, lock)(&rproc->lock);
c42baf6f84c7694 Peng Fan 2025-10-10 1982 ret = ACQUIRE_ERR(mutex_intr, &lock);
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1983 if (ret) {
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1984 dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, ret);
c13b780c4597e1e Suman Anna 2022-02-13 1985 return ret;
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1986 }
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1987
c42baf6f84c7694 Peng Fan 2025-10-10 1988 if (rproc->state != RPROC_RUNNING && rproc->state != RPROC_ATTACHED)
c42baf6f84c7694 Peng Fan 2025-10-10 1989 return -EINVAL;
5e6a0e05270e3a4 Shengjiu Wang 2022-03-28 1990
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1991 /* if the remote proc is still needed, bail out */
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1992 if (!atomic_dec_and_test(&rproc->power))
c42baf6f84c7694 Peng Fan 2025-10-10 @1993 return ret;

Same.

400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1994
fcd58037f28bf70 Arnaud Pouliquen 2018-04-10 1995 ret = rproc_stop(rproc, false);
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1996 if (ret) {
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1997 atomic_inc(&rproc->power);
c42baf6f84c7694 Peng Fan 2025-10-10 1998 return ret;
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 1999 }
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 2000
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 2001 /* clean up all acquired resources */
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 2002 rproc_resource_cleanup(rproc);
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 2003
33467ac3c8dc805 Loic Pallardy 2020-04-16 2004 /* release HW resources if needed */
33467ac3c8dc805 Loic Pallardy 2020-04-16 2005 rproc_unprepare_device(rproc);
33467ac3c8dc805 Loic Pallardy 2020-04-16 2006
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 2007 rproc_disable_iommu(rproc);
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 2008
988d204cdaf604c Bjorn Andersson 2016-08-11 2009 /* Free the copy of the resource table */
a0c10687ec9506b Bjorn Andersson 2016-12-30 2010 kfree(rproc->cached_table);
a0c10687ec9506b Bjorn Andersson 2016-12-30 2011 rproc->cached_table = NULL;
988d204cdaf604c Bjorn Andersson 2016-08-11 2012 rproc->table_ptr = NULL;
c42baf6f84c7694 Peng Fan 2025-10-10 2013
c13b780c4597e1e Suman Anna 2022-02-13 2014 return ret;
400e64df6b237eb Ohad Ben-Cohen 2011-10-20 2015 }

--
0-DAY CI Kernel Test Service