diff options
author | Bjorn Andersson <bjorn.andersson@linaro.org> | 2017-08-31 02:26:23 +0300 |
---|---|---|
committer | Bjorn Andersson <bjorn.andersson@linaro.org> | 2017-08-31 02:26:23 +0300 |
commit | 5f5423ffa223a0beb755563beac67f741662870b (patch) | |
tree | 2bd2c693ab833bb0b9d86a34b416504ab922da02 /drivers/rpmsg/qcom_glink_native.c | |
parent | 88c6060f5a7f3fc1530b2722d5964945e5174358 (diff) | |
download | linux-5f5423ffa223a0beb755563beac67f741662870b.tar.xz |
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/qcom_glink_native.c')
-rw-r--r-- | drivers/rpmsg/qcom_glink_native.c | 2 |
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); |