diff options
author | Rebecca Schultz Zavin <rebecca@android.com> | 2011-12-13 01:21:19 +0800 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2011-12-26 16:41:47 +0800 |
commit | a49189a2220f2cfba6c8112194d6db92bf923562 (patch) | |
tree | 624676b62d6948826eba99c6bf9e69425c36e866 /drivers | |
parent | 71eeef8520c0c0ca6cf83b3f754967952130d67d (diff) |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/ion/ion.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/ion/ion.c b/drivers/gpu/ion/ion.c index 1a63ebff5ee..f11a566f9a7 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; |