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 <jgebben@codeaurora.org>
diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c
index 072edad..a2234f3 100644
--- a/drivers/gpu/msm/kgsl.c
+++ b/drivers/gpu/msm/kgsl.c
@@ -1846,10 +1846,20 @@
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);