From: CMY Date: Thu, 14 Aug 2014 01:03:21 +0000 (+0800) Subject: rk: ion: check the iommu map's result X-Git-Tag: firefly_0821_release~4899^2~9 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=059e52c5289feb813c5a1787309c1ca28ae8e410;p=firefly-linux-kernel-4.4.55.git rk: ion: check the iommu map's result --- diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index 41a537eeea8a..95ae1c043c5b 100755 --- a/drivers/staging/android/ion/ion.c +++ b/drivers/staging/android/ion/ion.c @@ -817,6 +817,8 @@ int ion_map_iommu(struct device *iommu_dev, struct ion_client *client, if (!iommu_map) { pr_debug("%s: create new map for buffer(%p)\n", __func__, buffer); iommu_map = __ion_iommu_map(buffer, iommu_dev, iova); + if (!IS_ERR_OR_NULL(iommu_map)) + ret = -ENOMEM; } else { pr_debug("%s: buffer(%p) already mapped\n", __func__, buffer); if (iommu_map->mapped_size != buffer->size) { diff --git a/drivers/staging/android/ion/ion_cma_heap.c b/drivers/staging/android/ion/ion_cma_heap.c index 8e5529262f5d..fc493631be39 100755 --- a/drivers/staging/android/ion/ion_cma_heap.c +++ b/drivers/staging/android/ion/ion_cma_heap.c @@ -207,9 +207,9 @@ static int ion_cma_map_iommu(struct ion_buffer *buffer, data->iova_addr = rockchip_iovmm_map(iommu_dev, info->table->sgl, 0, iova_length); pr_debug("%s: map %x -> %lx\n", __func__, info->table->sgl->dma_address, data->iova_addr); - if (!data->iova_addr || IS_ERR_VALUE(data->iova_addr)) { + if (IS_ERR_OR_NULL(data->iova_addr)) { pr_err("%s: rockchip_iovmm_map() failed: %lx\n", __func__, data->iova_addr); - ret = -EINVAL; + ret = -ENOMEM; goto out; } diff --git a/drivers/staging/android/ion/ion_system_heap.c b/drivers/staging/android/ion/ion_system_heap.c index a8bd939eec19..95da2a6aed5a 100755 --- a/drivers/staging/android/ion/ion_system_heap.c +++ b/drivers/staging/android/ion/ion_system_heap.c @@ -262,9 +262,9 @@ static int ion_system_map_iommu(struct ion_buffer *buffer, data->iova_addr = rockchip_iovmm_map(iommu_dev, table->sgl, 0, iova_length); pr_debug("%s: map %x -> %lx\n", __func__, table->sgl->dma_address, data->iova_addr); - if (!data->iova_addr || IS_ERR_VALUE(data->iova_addr)) { + if (IS_ERR_OR_NULL(data->iova_addr)) { pr_err("%s: rockchip_iovmm_map() failed: %lx\n", __func__, data->iova_addr); - ret = -EINVAL; + ret = -ENOMEM; goto out; }