diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2017-02-03 06:26:59 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-02-03 06:26:58 -0800 |
commit | 33d448626003f724f0d6aa23d92c85730419d205 (patch) | |
tree | 52ecf2ea724012d1ebf5d3d7f43be9d0b7d700a0 /sound/soc | |
parent | 9ffdcf0122c77a0ee77d692cfc45ae5345f0e6f9 (diff) | |
parent | 937bc9e644180e258c68662095861803f7ba4ded (diff) |
Merge "ASoC: msm: qdsp6v2: completely deallocate on cal block creation failure"
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/msm/qdsp6v2/audio_cal_utils.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/msm/qdsp6v2/audio_cal_utils.c b/sound/soc/msm/qdsp6v2/audio_cal_utils.c index 75af648baef3..b54cde4ef0c3 100644 --- a/sound/soc/msm/qdsp6v2/audio_cal_utils.c +++ b/sound/soc/msm/qdsp6v2/audio_cal_utils.c @@ -607,7 +607,6 @@ static struct cal_block_data *create_cal_block(struct cal_type_data *cal_type, } INIT_LIST_HEAD(&cal_block->list); - list_add_tail(&cal_block->list, &cal_type->cal_blocks); cal_block->map_data.ion_map_handle = basic_cal->cal_data.mem_handle; if (basic_cal->cal_data.mem_handle > 0) { @@ -639,6 +638,7 @@ static struct cal_block_data *create_cal_block(struct cal_type_data *cal_type, goto err; } cal_block->buffer_number = basic_cal->cal_hdr.buffer_number; + list_add_tail(&cal_block->list, &cal_type->cal_blocks); pr_debug("%s: created block for cal type %d, buf num %d, map handle %d, map size %zd paddr 0x%pK!\n", __func__, cal_type->info.reg.cal_type, cal_block->buffer_number, @@ -648,6 +648,8 @@ static struct cal_block_data *create_cal_block(struct cal_type_data *cal_type, done: return cal_block; err: + kfree(cal_block->cal_info); + kfree(cal_block->client_info); kfree(cal_block); cal_block = NULL; return cal_block; |