summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorkunleiz <kunleiz@codeaurora.org>2017-04-14 10:28:42 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-04-26 17:57:45 -0700
commitba9b1ef0a8a8fdc82464a1e8cbc3eee7bad25fdd (patch)
treedc774e2cbd35480be84cc53b0bde2c02443616f0 /drivers/misc
parentb1980b6bfedd0ac23e3b0320a8ed9bf7959e88bb (diff)
ASoC: msm: qdspv2: add result check when audio process fail
A audio_process_event_req is not always to success. Therefore, check the return value for audio_process_event_req, and initializ usr_evt before using it. CRs-Fixed: 2029798 Change-Id: I4adf682575f5f9233a1a1a533f9c6361af8a5bcf Signed-off-by: kunleiz <kunleiz@codeaurora.org>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/qcom/qdsp6v2/audio_utils_aio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c b/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
index b7af80854420..e3f23caac5b8 100644
--- a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
+++ b/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
@@ -851,6 +851,7 @@ static long audio_aio_process_event_req_compat(struct q6audio_aio *audio,
long rc;
struct msm_audio_event32 usr_evt_32;
struct msm_audio_event usr_evt;
+ memset(&usr_evt, 0, sizeof(struct msm_audio_event));
if (copy_from_user(&usr_evt_32, arg,
sizeof(struct msm_audio_event32))) {
@@ -860,6 +861,11 @@ static long audio_aio_process_event_req_compat(struct q6audio_aio *audio,
usr_evt.timeout_ms = usr_evt_32.timeout_ms;
rc = audio_aio_process_event_req_common(audio, &usr_evt);
+ if (rc < 0) {
+ pr_err("%s: audio process event failed, rc = %ld",
+ __func__, rc);
+ return rc;
+ }
usr_evt_32.event_type = usr_evt.event_type;
switch (usr_evt_32.event_type) {