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>
This commit is contained in:
Jeremy Gebben
2012-05-07 16:17:18 -06:00
parent 3a189fc0fa
commit 53d4dd0285
+14 -4
View File
@@ -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);