From: CMY Date: Thu, 14 Aug 2014 02:49:15 +0000 (+0800) Subject: rk: ion: return appropriate value if iommu map fail X-Git-Tag: firefly_0821_release~4899^2~3 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0aaedd101efe8966f93272de1b67ae5838fca086;p=firefly-linux-kernel-4.4.55.git rk: ion: return appropriate value if iommu map fail --- diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index 95ae1c043c5b..58d5d96a1360 100755 --- a/drivers/staging/android/ion/ion.c +++ b/drivers/staging/android/ion/ion.c @@ -817,8 +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; + if (IS_ERR(iommu_map)) + ret = PTR_ERR(iommu_map); } 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 fc493631be39..508c44e26272 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 (IS_ERR_OR_NULL(data->iova_addr)) { + if (IS_ERR_VALUE(data->iova_addr)) { pr_err("%s: rockchip_iovmm_map() failed: %lx\n", __func__, data->iova_addr); - ret = -ENOMEM; + ret = data->iova_addr; goto out; } diff --git a/drivers/staging/android/ion/ion_system_heap.c b/drivers/staging/android/ion/ion_system_heap.c index 95da2a6aed5a..4593046b9a6f 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 (IS_ERR_OR_NULL(data->iova_addr)) { + if (IS_ERR_VALUE(data->iova_addr)) { pr_err("%s: rockchip_iovmm_map() failed: %lx\n", __func__, data->iova_addr); - ret = -ENOMEM; + ret = data->iova_addr; goto out; }