summaryrefslogtreecommitdiffstats
path: root/drivers/rpmsg
diff options
context:
space:
mode:
authorBjorn Andersson <bjorn.andersson@linaro.org>2017-08-30 16:26:23 -0700
committerBjorn Andersson <bjorn.andersson@linaro.org>2017-08-30 16:26:23 -0700
commit5f5423ffa223a0beb755563beac67f741662870b (patch)
tree2bd2c693ab833bb0b9d86a34b416504ab922da02 /drivers/rpmsg
parent88c6060f5a7f3fc1530b2722d5964945e5174358 (diff)
downloadlinux-5f5423ffa223a0beb755563beac67f741662870b.tar.bz2
rpmsg: glink: Release idr lock before returning on error
The idr_lock should be released in the case that we don't find the given channel. Fixes: 44f6df922a26 ("rpmsg: glink: Fix idr_lock from mutex to spinlock") Reported-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Diffstat (limited to 'drivers/rpmsg')
-rw-r--r--drivers/rpmsg/qcom_glink_native.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
index 4faee2d17728..0982dee50291 100644
--- a/drivers/rpmsg/qcom_glink_native.c
+++ b/drivers/rpmsg/qcom_glink_native.c
@@ -938,11 +938,11 @@ static int qcom_glink_rx_open_ack(struct qcom_glink *glink, unsigned int lcid)
spin_lock(&glink->idr_lock);
channel = idr_find(&glink->lcids, lcid);
+ spin_unlock(&glink->idr_lock);
if (!channel) {
dev_err(glink->dev, "Invalid open ack packet\n");
return -EINVAL;
}
- spin_unlock(&glink->idr_lock);
complete(&channel->open_ack);