From 53d4dd028583c3d0a97233d3dff4336ae086ca91 Mon Sep 17 00:00:00 2001 From: Jeremy Gebben Date: Mon, 7 May 2012 15:42:00 -0600 Subject: [PATCH] msm: kgsl: fix cleanup code in kgsl_ioctl_map_user_mem() ion handles need to be handled differently than pmem or ashmem handles. CRs-Fixed: 359268 Change-Id: I20637644f247859245fbba80e5bc6b50fd896403 Signed-off-by: Jeremy Gebben --- drivers/gpu/msm/kgsl.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index 072edadf455..a2234f3fb3e 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -1846,10 +1846,20 @@ static long kgsl_ioctl_map_user_mem(struct kgsl_device_private *dev_priv, kgsl_check_idle(dev_priv->device); return result; - error_put_file_ptr: - if (entry->priv_data) - fput(entry->priv_data); - +error_put_file_ptr: + switch (entry->memtype) { + case KGSL_MEM_ENTRY_PMEM: + case KGSL_MEM_ENTRY_ASHMEM: + if (entry->priv_data) + fput(entry->priv_data); + break; + case KGSL_MEM_ENTRY_ION: + ion_unmap_dma(kgsl_ion_client, entry->priv_data); + ion_free(kgsl_ion_client, entry->priv_data); + break; + default: + break; + } error: kfree(entry); kgsl_check_idle(dev_priv->device);