gpu: ion: Fix bug in ion client destroy

ion_client_destroy kernel api should only delete the client
if it's refcount has gone to zero.

Change-Id: Iaa662bd82d67279a9807e01f9a24aebe3d21c17d
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
diff --git a/drivers/gpu/ion/ion.c b/drivers/gpu/ion/ion.c
index 1a63ebf..f11a566 100644
--- a/drivers/gpu/ion/ion.c
+++ b/drivers/gpu/ion/ion.c
@@ -705,8 +705,9 @@
 	return client;
 }
 
-void ion_client_destroy(struct ion_client *client)
+static void _ion_client_destroy(struct kref *kref)
 {
+	struct ion_client *client = container_of(kref, struct ion_client, ref);
 	struct ion_device *dev = client->dev;
 	struct rb_node *n;
 
@@ -729,12 +730,6 @@
 	kfree(client);
 }
 
-static void _ion_client_destroy(struct kref *kref)
-{
-	struct ion_client *client = container_of(kref, struct ion_client, ref);
-	ion_client_destroy(client);
-}
-
 static void ion_client_get(struct ion_client *client)
 {
 	kref_get(&client->ref);
@@ -745,6 +740,11 @@
 	return kref_put(&client->ref, _ion_client_destroy);
 }
 
+void ion_client_destroy(struct ion_client *client)
+{
+	ion_client_put(client);
+}
+
 static int ion_share_release(struct inode *inode, struct file* file)
 {
 	struct ion_buffer *buffer = file->private_data;