diff options
| author | Meng Wang <mwang@codeaurora.org> | 2016-11-15 17:37:27 +0800 |
|---|---|---|
| committer | Meng Wang <mwang@codeaurora.org> | 2016-11-23 10:08:56 +0800 |
| commit | 581402534074b6aa9dcbb7ca1337c405664ad1a6 (patch) | |
| tree | f5edcc33d71b3f438da3e00c562232dcce6da2b0 | |
| parent | e2787f510d8879a6608bf41d0a62e32244da18fc (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.c | 9 |
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: |
