summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorVatsal Bucha <vbucha@codeaurora.org>2019-04-02 16:32:47 +0530
committerVatsal Bucha <vbucha@codeaurora.org>2019-04-02 16:32:47 +0530
commitb6870ada98821bc40f00f0faf02f25624602aaa7 (patch)
treed386e96f96a863f3ecc82ad40cb759a7d8a34270 /drivers/misc
parent7e7b058fc8af86447fd049af7221bdaaecf2b13b (diff)
dsp: q6usm: Release spinlock before return if invalid payload size
Release spinlock in EVENT_READ_DONE before return if payload size is invalid. Change-Id: I0fe4f841ce73ecfc30fe70334e203443e5e2cb28 Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c b/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c
index 654252ffec60..085f68b22638 100644
--- a/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c
+++ b/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c
@@ -639,6 +639,8 @@ static int32_t q6usm_callback(struct apr_client_data *data, void *priv)
(sizeof(uint32_t)*(READDONE_IDX_STATUS + 1))) {
pr_err("%s: Invalid payload size for READDONE[%d]\n",
__func__, data->payload_size);
+ spin_unlock_irqrestore(&port->dsp_lock,
+ dsp_flags);
return -EINVAL;
}
if (payload[READDONE_IDX_STATUS]) {