From: shawnguo@kernel.org (Shawn Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [shawnguo:imx/drivers 9/10] drivers/firmware/imx/imx-scu.c:180:3-9: preceding lock on line 165 (fwd)
Date: Mon, 8 Oct 2018 22:03:46 +0800 [thread overview]
Message-ID: <20181008140344.GQ3587@dragon> (raw)
In-Reply-To: <alpine.DEB.2.20.1810081032450.2815@hadrien>
Hi Julia,
On Mon, Oct 08, 2018 at 10:33:31AM +0200, Julia Lawall wrote:
> Hello,
>
> It looks like an unlock is needed before line 180.
Ah, yes. I just appended the following change to the original commit.
Thanks for the report.
Shawn
diff --git a/drivers/firmware/imx/imx-scu.c b/drivers/firmware/imx/imx-scu.c
index 06c9b8e01a8c..2bb1a19c413f 100644
--- a/drivers/firmware/imx/imx-scu.c
+++ b/drivers/firmware/imx/imx-scu.c
@@ -176,6 +176,7 @@ int imx_scu_call_rpc(struct imx_sc_ipc *sc_ipc, void *msg, bool have_resp)
if (!wait_for_completion_timeout(&sc_ipc->done,
MAX_RX_TIMEOUT)) {
dev_err(sc_ipc->dev, "RPC send msg timeout\n");
+ mutex_unlock(&sc_ipc->lock);
return -ETIMEDOUT;
}
>
> julia
>
> ---------- Forwarded message ----------
> Date: Mon, 8 Oct 2018 15:25:21 +0800
> From: kbuild test robot <lkp@intel.com>
> To: kbuild at 01.org
> Cc: Julia Lawall <julia.lawall@lip6.fr>
> Subject: [shawnguo:imx/drivers 9/10] drivers/firmware/imx/imx-scu.c:180:3-9:
> preceding lock on line 165
>
> CC: kbuild-all at 01.org
> CC: linux-arm-kernel at lists.infradead.org
> TO: Dong Aisheng <aisheng.dong@nxp.com>
> CC: Shawn Guo <shawnguo@kernel.org>
> CC: Sascha Hauer <s.hauer@pengutronix.de>
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git imx/drivers
> head: a8b96789a795af1127f722c3b1cd243ea16270ae
> commit: d41a5a155f7b716941583cab7db703a2e4c6172c [9/10] firmware: imx: add SCU firmware driver support
> :::::: branch date: 8 days ago
> :::::: commit date: 8 days ago
>
> >> drivers/firmware/imx/imx-scu.c:180:3-9: preceding lock on line 165
>
> # https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git/commit/?id=d41a5a155f7b716941583cab7db703a2e4c6172c
> git remote add shawnguo https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
> git remote update shawnguo
> git checkout d41a5a155f7b716941583cab7db703a2e4c6172c
> vim +180 drivers/firmware/imx/imx-scu.c
>
> d41a5a15 Dong Aisheng 2018-09-30 153
> d41a5a15 Dong Aisheng 2018-09-30 154 /*
> d41a5a15 Dong Aisheng 2018-09-30 155 * RPC command/response
> d41a5a15 Dong Aisheng 2018-09-30 156 */
> d41a5a15 Dong Aisheng 2018-09-30 157 int imx_scu_call_rpc(struct imx_sc_ipc *sc_ipc, void *msg, bool have_resp)
> d41a5a15 Dong Aisheng 2018-09-30 158 {
> d41a5a15 Dong Aisheng 2018-09-30 159 struct imx_sc_rpc_msg *hdr;
> d41a5a15 Dong Aisheng 2018-09-30 160 int ret;
> d41a5a15 Dong Aisheng 2018-09-30 161
> d41a5a15 Dong Aisheng 2018-09-30 162 if (WARN_ON(!sc_ipc || !msg))
> d41a5a15 Dong Aisheng 2018-09-30 163 return -EINVAL;
> d41a5a15 Dong Aisheng 2018-09-30 164
> d41a5a15 Dong Aisheng 2018-09-30 @165 mutex_lock(&sc_ipc->lock);
> d41a5a15 Dong Aisheng 2018-09-30 166 reinit_completion(&sc_ipc->done);
> d41a5a15 Dong Aisheng 2018-09-30 167
> d41a5a15 Dong Aisheng 2018-09-30 168 sc_ipc->msg = msg;
> d41a5a15 Dong Aisheng 2018-09-30 169 sc_ipc->count = 0;
> d41a5a15 Dong Aisheng 2018-09-30 170 ret = imx_scu_ipc_write(sc_ipc, msg);
> d41a5a15 Dong Aisheng 2018-09-30 171 if (ret < 0) {
> d41a5a15 Dong Aisheng 2018-09-30 172 dev_err(sc_ipc->dev, "RPC send msg failed: %d\n", ret);
> d41a5a15 Dong Aisheng 2018-09-30 173 goto out;
> d41a5a15 Dong Aisheng 2018-09-30 174 }
> d41a5a15 Dong Aisheng 2018-09-30 175
> d41a5a15 Dong Aisheng 2018-09-30 176 if (have_resp) {
> d41a5a15 Dong Aisheng 2018-09-30 177 if (!wait_for_completion_timeout(&sc_ipc->done,
> d41a5a15 Dong Aisheng 2018-09-30 178 MAX_RX_TIMEOUT)) {
> d41a5a15 Dong Aisheng 2018-09-30 179 dev_err(sc_ipc->dev, "RPC send msg timeout\n");
> d41a5a15 Dong Aisheng 2018-09-30 @180 return -ETIMEDOUT;
> d41a5a15 Dong Aisheng 2018-09-30 181 }
> d41a5a15 Dong Aisheng 2018-09-30 182
> d41a5a15 Dong Aisheng 2018-09-30 183 /* response status is stored in hdr->func field */
> d41a5a15 Dong Aisheng 2018-09-30 184 hdr = msg;
> d41a5a15 Dong Aisheng 2018-09-30 185 ret = hdr->func;
> d41a5a15 Dong Aisheng 2018-09-30 186 }
> d41a5a15 Dong Aisheng 2018-09-30 187
> d41a5a15 Dong Aisheng 2018-09-30 188 out:
> d41a5a15 Dong Aisheng 2018-09-30 189 mutex_unlock(&sc_ipc->lock);
> d41a5a15 Dong Aisheng 2018-09-30 190
> d41a5a15 Dong Aisheng 2018-09-30 191 dev_dbg(sc_ipc->dev, "RPC SVC done\n");
> d41a5a15 Dong Aisheng 2018-09-30 192
> d41a5a15 Dong Aisheng 2018-09-30 193 return imx_sc_to_linux_errno(ret);
> d41a5a15 Dong Aisheng 2018-09-30 194 }
> d41a5a15 Dong Aisheng 2018-09-30 195 EXPORT_SYMBOL(imx_scu_call_rpc);
> d41a5a15 Dong Aisheng 2018-09-30 196
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
next prev parent reply other threads:[~2018-10-08 14:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-08 8:33 [shawnguo:imx/drivers 9/10] drivers/firmware/imx/imx-scu.c:180:3-9: preceding lock on line 165 (fwd) Julia Lawall
2018-10-08 14:03 ` Shawn Guo [this message]
2018-10-09 2:38 ` A.s. Dong
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=20181008140344.GQ3587@dragon \
--to=shawnguo@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
/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.