summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-03-30 07:20:58 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-30 07:20:57 -0700
commit928cd38621942548217aa62a12110f0e02cb813b (patch)
tree0ed72e301f1c7a85a158e322bf881463bd83d442
parentc63da8bee6dc44aa118f5414758e44eaa8e854cf (diff)
parentb9732c9865d7ddf8eb5ba6d27db8081ad59c815a (diff)
Merge "soc: qcom: fix to avoid multiple memory allocations"
-rw-r--r--drivers/soc/qcom/wcd-dsp-glink.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/soc/qcom/wcd-dsp-glink.c b/drivers/soc/qcom/wcd-dsp-glink.c
index 1ceded4db79f..f601e6646852 100644
--- a/drivers/soc/qcom/wcd-dsp-glink.c
+++ b/drivers/soc/qcom/wcd-dsp-glink.c
@@ -531,6 +531,13 @@ static int wdsp_glink_ch_info_init(struct wdsp_glink_priv *wpriv,
u8 *payload;
u32 ch_size, ch_cfg_size;
+ mutex_lock(&wpriv->glink_mutex);
+ if (wpriv->ch) {
+ dev_err(wpriv->dev, "%s: glink ch memory is already allocated\n",
+ __func__);
+ ret = -EINVAL;
+ goto done;
+ }
payload = (u8 *)pkt->payload;
no_of_channels = pkt->no_of_channels;
@@ -611,6 +618,7 @@ err_ch_mem:
wpriv->no_of_channels = 0;
done:
+ mutex_unlock(&wpriv->glink_mutex);
return ret;
}