All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH v2] misc: fastrpc: fix context leak and hang on signal-interrupted invoke
Date: Fri, 3 Jul 2026 10:39:19 +0800	[thread overview]
Message-ID: <202607031058.69A6d6WW-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20260701-master-v2-1-566bf8b7bd16@oss.qualcomm.com>
References: <20260701-master-v2-1-566bf8b7bd16@oss.qualcomm.com>
TO: Anandu Krishnan E <anandu.e@oss.qualcomm.com>
TO: Srinivas Kandagatla <srini@kernel.org>
TO: Amol Maheshwari <amahesh@qti.qualcomm.com>
TO: Arnd Bergmann <arnd@arndb.de>
TO: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
TO: "Jorge Ramirez-Ortiz" <jorge.ramirez@oss.qualcomm.com>
CC: linux-arm-msm@vger.kernel.org
CC: dri-devel@lists.freedesktop.org
CC: linux-kernel@vger.kernel.org
CC: stable@kernel.org
CC: Anandu Krishnan E <anandu.e@oss.qualcomm.com>

Hi Anandu,

kernel test robot noticed the following build warnings:

[auto build test WARNING on dc59e4fea9d83f03bad6bddf3fa2e52491777482]

url:    https://github.com/intel-lab-lkp/linux/commits/Anandu-Krishnan-E/misc-fastrpc-fix-context-leak-and-hang-on-signal-interrupted-invoke/20260701-161349
base:   dc59e4fea9d83f03bad6bddf3fa2e52491777482
patch link:    https://lore.kernel.org/r/20260701-master-v2-1-566bf8b7bd16%40oss.qualcomm.com
patch subject: [PATCH v2] misc: fastrpc: fix context leak and hang on signal-interrupted invoke
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: sparc-randconfig-r071-20260702 (https://download.01.org/0day-ci/archive/20260703/202607031058.69A6d6WW-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 13.4.0
smatch: v0.5.0-9185-gbcc58b9c

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/202607031058.69A6d6WW-lkp@intel.com/

New smatch warnings:
drivers/misc/fastrpc.c:1340 fastrpc_internal_invoke() warn: 'ctx' can also be NULL

Old smatch warnings:
drivers/misc/fastrpc.c:1356 fastrpc_internal_invoke() warn: 'ctx' can also be NULL
drivers/misc/fastrpc.c:1440 fastrpc_init_create_static_process() error: we previously assumed 'fl->cctx->remote_heap' could be null (see line 1430)

vim +/ctx +1340 drivers/misc/fastrpc.c

c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1287  
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1288  static int fastrpc_internal_invoke(struct fastrpc_user *fl,  u32 kernel,
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1289  				   u32 handle, u32 sc,
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1290  				   struct fastrpc_invoke_args *args)
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1291  {
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1292  	struct fastrpc_invoke_ctx *ctx = NULL;
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1293  	int err = 0;
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1294  
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1295  	if (!fl->sctx)
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1296  		return -EINVAL;
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1297  
2e369878bd4399 Bjorn Andersson     2019-08-29  1298  	if (!fl->cctx->rpdev)
2e369878bd4399 Bjorn Andersson     2019-08-29  1299  		return -EPIPE;
2e369878bd4399 Bjorn Andersson     2019-08-29  1300  
20c40794eb85ea Dmitry Baryshkov    2021-02-12  1301  	if (handle == FASTRPC_INIT_HANDLE && !kernel) {
20c40794eb85ea Dmitry Baryshkov    2021-02-12  1302  		dev_warn_ratelimited(fl->sctx->dev, "user app trying to send a kernel RPC message (%d)\n",  handle);
20c40794eb85ea Dmitry Baryshkov    2021-02-12  1303  		return -EPERM;
20c40794eb85ea Dmitry Baryshkov    2021-02-12  1304  	}
20c40794eb85ea Dmitry Baryshkov    2021-02-12  1305  
d79842457e9cbe Anandu Krishnan E   2026-07-01  1306  	if (!kernel) {
d79842457e9cbe Anandu Krishnan E   2026-07-01  1307  		ctx = fastrpc_context_restore_interrupted(fl, sc);
d79842457e9cbe Anandu Krishnan E   2026-07-01  1308  		if (IS_ERR(ctx))
d79842457e9cbe Anandu Krishnan E   2026-07-01  1309  			return PTR_ERR(ctx);
d79842457e9cbe Anandu Krishnan E   2026-07-01  1310  		if (ctx)
d79842457e9cbe Anandu Krishnan E   2026-07-01  1311  			goto wait;
d79842457e9cbe Anandu Krishnan E   2026-07-01  1312  	}
d79842457e9cbe Anandu Krishnan E   2026-07-01  1313  
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1314  	ctx = fastrpc_context_alloc(fl, kernel, sc, args);
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1315  	if (IS_ERR(ctx))
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1316  		return PTR_ERR(ctx);
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1317  
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1318  	err = fastrpc_get_args(kernel, ctx);
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1319  	if (err)
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1320  		goto bail;
415a0729bd1225 Srinivas Kandagatla 2019-03-07  1321  
415a0729bd1225 Srinivas Kandagatla 2019-03-07  1322  	/* make sure that all CPU memory writes are seen by DSP */
415a0729bd1225 Srinivas Kandagatla 2019-03-07  1323  	dma_wmb();
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1324  	/* Send invoke buffer to remote dsp */
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1325  	err = fastrpc_invoke_send(fl->sctx, ctx, kernel, handle);
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1326  	if (err)
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1327  		goto bail;
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1328  
d79842457e9cbe Anandu Krishnan E   2026-07-01  1329  wait:
55bcda35584c99 Jorge Ramirez-Ortiz 2019-10-09  1330  	if (kernel) {
d79842457e9cbe Anandu Krishnan E   2026-07-01  1331  		if (!wait_for_completion_timeout(&ctx->work, 10 * HZ)) {
55bcda35584c99 Jorge Ramirez-Ortiz 2019-10-09  1332  			err = -ETIMEDOUT;
d79842457e9cbe Anandu Krishnan E   2026-07-01  1333  			dev_warn(fl->sctx->dev,
d79842457e9cbe Anandu Krishnan E   2026-07-01  1334  				"fastrpc_invoke: TIMEOUT ctxid=0x%llx handle=0x%x nscalars=%d\n",
d79842457e9cbe Anandu Krishnan E   2026-07-01  1335  				ctx->ctxid, handle, ctx->nscalars);
d79842457e9cbe Anandu Krishnan E   2026-07-01  1336  		}
55bcda35584c99 Jorge Ramirez-Ortiz 2019-10-09  1337  	} else {
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1338  		err = wait_for_completion_interruptible(&ctx->work);
d79842457e9cbe Anandu Krishnan E   2026-07-01  1339  		if (err == -ERESTARTSYS)
d79842457e9cbe Anandu Krishnan E   2026-07-01 @1340  			dev_warn(fl->sctx->dev,
d79842457e9cbe Anandu Krishnan E   2026-07-01  1341  				"fastrpc_invoke: INTERRUPTED ctxid=0x%llx handle=0x%x nscalars=%d\n",
d79842457e9cbe Anandu Krishnan E   2026-07-01  1342  				ctx->ctxid, handle, ctx->nscalars);
55bcda35584c99 Jorge Ramirez-Ortiz 2019-10-09  1343  	}
55bcda35584c99 Jorge Ramirez-Ortiz 2019-10-09  1344  
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1345  	if (err)
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1346  		goto bail;
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1347  
415a0729bd1225 Srinivas Kandagatla 2019-03-07  1348  	/* make sure that all memory writes by DSP are seen by CPU */
415a0729bd1225 Srinivas Kandagatla 2019-03-07  1349  	dma_rmb();
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1350  	/* populate all the output buffers with results */
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1351  	err = fastrpc_put_args(ctx, kernel);
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1352  	if (err)
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1353  		goto bail;
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1354  
1c8093591d1e37 Ekansh Gupta        2023-10-13  1355  	/* Check the response from remote dsp */
1c8093591d1e37 Ekansh Gupta        2023-10-13  1356  	err = ctx->retval;
1c8093591d1e37 Ekansh Gupta        2023-10-13  1357  	if (err)
1c8093591d1e37 Ekansh Gupta        2023-10-13  1358  		goto bail;
1c8093591d1e37 Ekansh Gupta        2023-10-13  1359  
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1360  bail:
d79842457e9cbe Anandu Krishnan E   2026-07-01  1361  	if (ctx && err == -ERESTARTSYS) {
d79842457e9cbe Anandu Krishnan E   2026-07-01  1362  		fastrpc_context_save_interrupted(ctx);
d79842457e9cbe Anandu Krishnan E   2026-07-01  1363  	} else if (ctx) {
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1364  		spin_lock(&fl->lock);
d79842457e9cbe Anandu Krishnan E   2026-07-01  1365  		list_del_init(&ctx->node);
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1366  		spin_unlock(&fl->lock);
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1367  		fastrpc_context_put(ctx);
387f625585d1a5 Jorge Ramirez-Ortiz 2019-10-09  1368  	}
0871561055e666 Abel Vesa           2022-11-25  1369  
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1370  	if (err)
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1371  		dev_dbg(fl->sctx->dev, "Error: Invoke Failed %d\n", err);
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1372  
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1373  	return err;
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1374  }
c68cfb718c8f97 Srinivas Kandagatla 2019-02-08  1375  

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

             reply	other threads:[~2026-07-03  2:40 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-03  2:39 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-07-01  8:11 [PATCH v2] misc: fastrpc: fix context leak and hang on signal-interrupted invoke Anandu Krishnan E
2026-07-01  8:27 ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202607031058.69A6d6WW-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.