summaryrefslogtreecommitdiff
path: root/dsp/q6asm.c
diff options
context:
space:
mode:
Diffstat (limited to 'dsp/q6asm.c')
-rw-r--r--dsp/q6asm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/dsp/q6asm.c b/dsp/q6asm.c
index 235cdbd4..2939599d 100644
--- a/dsp/q6asm.c
+++ b/dsp/q6asm.c
@@ -8486,6 +8486,7 @@ static int q6asm_memory_map_regions(struct audio_client *ac, int dir,
if (mmap_region_cmd == NULL) {
rc = -EINVAL;
kfree(buffer_node);
+ buffer_node = NULL;
return rc;
}
mmap_regions = (struct avs_cmd_shared_mem_map_regions *)
@@ -8522,6 +8523,7 @@ static int q6asm_memory_map_regions(struct audio_client *ac, int dir,
mmap_regions->hdr.opcode, rc);
rc = -EINVAL;
kfree(buffer_node);
+ buffer_node = NULL;
goto fail_cmd;
}
@@ -8533,6 +8535,7 @@ static int q6asm_memory_map_regions(struct audio_client *ac, int dir,
pr_err("%s: timeout. waited for memory_map\n", __func__);
rc = -ETIMEDOUT;
kfree(buffer_node);
+ buffer_node = NULL;
goto fail_cmd;
}
if (atomic_read(&ac->mem_state) > 0) {
@@ -8542,6 +8545,7 @@ static int q6asm_memory_map_regions(struct audio_client *ac, int dir,
rc = adsp_err_get_lnx_err_code(
atomic_read(&ac->mem_state));
kfree(buffer_node);
+ buffer_node = NULL;
goto fail_cmd;
}
mutex_lock(&ac->cmd_lock);
@@ -8561,6 +8565,7 @@ static int q6asm_memory_map_regions(struct audio_client *ac, int dir,
rc = 0;
fail_cmd:
kfree(mmap_region_cmd);
+ mmap_region_cmd = NULL;
return rc;
}
EXPORT_SYMBOL(q6asm_memory_map_regions);
@@ -8656,6 +8661,7 @@ fail_cmd:
if (buf_node->buf_phys_addr == buf_add) {
list_del(&buf_node->list);
kfree(buf_node);
+ buf_node = NULL;
break;
}
}