audio: add lock for resampler [1/1]
authorShuai Li <shuai.li@amlogic.com>
Mon, 6 May 2019 11:13:08 +0000 (19:13 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Thu, 9 May 2019 09:41:30 +0000 (02:41 -0700)
PD#SWPL-8134

Problem:
kernel NULL pointer for aml_resample_enable

Solution:
add lock for resampler

Verify:
Need stress test for x301

Change-Id: I1bbf5d7aeab681399c93f0cba9cc59195d3be0d6
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
sound/soc/amlogic/auge/ddr_mngr.c

index 752d1be..baa4fa7 100644 (file)
@@ -655,8 +655,13 @@ void aml_set_resample(enum resample_idx id,
        p_attach_resample->id            = id;
        p_attach_resample->attach_module = resample_module;
 
+       mutex_lock(&ddr_mutex);
        to = fetch_toddr_by_src(
                p_attach_resample->attach_module);
+       if (to == NULL) {
+               pr_info("%s(), toddr NULL\n", __func__);
+               goto exit;
+       }
 
        if (enable) {
                if ((p_attach_resample->status == DISABLED)
@@ -679,6 +684,9 @@ void aml_set_resample(enum resample_idx id,
 
        if (update_running && to)
                aml_resample_enable(to, p_attach_resample, enable);
+
+exit:
+       mutex_unlock(&ddr_mutex);
 }
 
 /*