summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeng Wang <mwang@codeaurora.org>2016-11-15 17:37:27 +0800
committerMeng Wang <mwang@codeaurora.org>2016-11-23 10:08:56 +0800
commit581402534074b6aa9dcbb7ca1337c405664ad1a6 (patch)
treef5edcc33d71b3f438da3e00c562232dcce6da2b0
parente2787f510d8879a6608bf41d0a62e32244da18fc (diff)
SoC: msm: q6dspv2: add null check for payload
In debug message, payload could be NULL and cause panic. Remove payload from debug message. Add null check for payload to avoid panic. CRs-Fixed: 1087543 Change-Id: I3e2fffdddfb7822a4eb3e142738363f1e80522d8 Signed-off-by: Meng Wang <mwang@codeaurora.org>
-rw-r--r--sound/soc/msm/qdsp6v2/q6asm.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sound/soc/msm/qdsp6v2/q6asm.c b/sound/soc/msm/qdsp6v2/q6asm.c
index e3545405f61d..9f304b20ad4e 100644
--- a/sound/soc/msm/qdsp6v2/q6asm.c
+++ b/sound/soc/msm/qdsp6v2/q6asm.c
@@ -1639,7 +1639,7 @@ static int32_t q6asm_callback(struct apr_client_data *data, void *priv)
asm_token.token = data->token;
if (q6asm_get_flag_from_token(&asm_token, ASM_CMD_NO_WAIT_OFFSET)) {
pr_debug("%s: No wait command opcode[0x%x] cmd_opcode:%x\n",
- __func__, data->opcode, payload[0]);
+ __func__, data->opcode, payload ? payload[0] : 0);
wakeup_flag = 0;
}
@@ -1673,9 +1673,14 @@ static int32_t q6asm_callback(struct apr_client_data *data, void *priv)
data->dest_port);
if ((data->opcode != ASM_DATA_EVENT_RENDERED_EOS) &&
(data->opcode != ASM_DATA_EVENT_EOS) &&
- (data->opcode != ASM_SESSION_EVENT_RX_UNDERFLOW))
+ (data->opcode != ASM_SESSION_EVENT_RX_UNDERFLOW)) {
+ if (payload == NULL) {
+ pr_err("%s: payload is null\n", __func__);
+ return -EINVAL;
+ }
dev_vdbg(ac->dev, "%s: Payload = [0x%x] status[0x%x] opcode 0x%x\n",
__func__, payload[0], payload[1], data->opcode);
+ }
if (data->opcode == APR_BASIC_RSP_RESULT) {
switch (payload[0]) {
case ASM_STREAM_CMD_SET_PP_PARAMS_V2: