Browse Source

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 <[email protected]>
Vatsal Bucha 6 years ago
parent
commit
038cb2d3d8
1 changed files with 2 additions and 0 deletions
  1. 2 0
      dsp/q6usm.c

+ 2 - 0
dsp/q6usm.c

@@ -628,6 +628,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]) {