From: Rebecca Schultz Zavin Date: Thu, 7 Jul 2011 01:07:01 +0000 (-0700) Subject: gpu: ion: Fix bug in ion client destroy X-Git-Tag: 2.1b_release~2535 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0c5c9d4ae045682531ef12c02fcd108daf53cd45;p=kernel%2Fkernel-mfld-blackbay.git 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 --- 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 @@ struct ion_client *ion_client_create(struct ion_device *dev, 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 @@ void ion_client_destroy(struct ion_client *client) 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 @@ static int ion_client_put(struct ion_client *client) 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;