From ba8056f2a60c085547eb94cb78fdf20458be883c Mon Sep 17 00:00:00 2001 From: Sathish Ambley Date: Wed, 16 Dec 2015 10:25:51 -0800 Subject: msm: ADSPRPC: Call free only when allocation succeed Call free only when allocation succeeded, otherwise skip freeing remote heap memory. Change-Id: I749c7956377764fe04e1b47898b4acb390c6b942 Acked-by: Himateja Reddy Signed-off-by: Sathish Ambley --- drivers/char/adsprpc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/char/adsprpc.c b/drivers/char/adsprpc.c index 0dfe4fa63646..5ec4d900f95b 100644 --- a/drivers/char/adsprpc.c +++ b/drivers/char/adsprpc.c @@ -417,10 +417,12 @@ static void fastrpc_mmap_free(struct fastrpc_mmap *map) pr_err("failed to free remote heap allocation\n"); return; } - dma_set_attr(DMA_ATTR_SKIP_ZEROING, &attrs); - dma_set_attr(DMA_ATTR_NO_KERNEL_MAPPING, &attrs); - dma_free_attrs(me->adsp_mem_device, map->size, - &(map->va), map->phys, &attrs); + if (map->phys) { + dma_set_attr(DMA_ATTR_SKIP_ZEROING, &attrs); + dma_set_attr(DMA_ATTR_NO_KERNEL_MAPPING, &attrs); + dma_free_attrs(me->adsp_mem_device, map->size, + &(map->va), map->phys, &attrs); + } } else { if (!IS_ERR_OR_NULL(map->handle)) ion_free(fl->apps->client, map->handle); -- cgit v1.2.3