diff --git a/drivers/staging/android/sw_sync.c b/drivers/staging/android/sw_sync.c index 1f956b99b880b0eee17469fc7fe0c7d9236f85b1..cf4de27266a495ae5a7e5ce924aa77e05ca7a051 100644 --- a/drivers/staging/android/sw_sync.c +++ b/drivers/staging/android/sw_sync.c @@ -97,21 +97,6 @@ static void sync_timeline_put(struct sync_timeline *obj) kref_put(&obj->kref, sync_timeline_free); } -/** - * sync_timeline_destroy() - destroys a sync object - * @obj: sync_timeline to destroy - * - * A sync implementation should call this when the @obj is going away - * (i.e. module unload.) @obj won't actually be freed until all its children - * fences are freed. - */ -static void sync_timeline_destroy(struct sync_timeline *obj) -{ - smp_wmb(); - - sync_timeline_put(obj); -} - /** * sync_timeline_signal() - signal a status change on a sync_timeline * @obj: sync_timeline to signal @@ -275,7 +260,9 @@ static int sw_sync_debugfs_release(struct inode *inode, struct file *file) { struct sync_timeline *obj = file->private_data; - sync_timeline_destroy(obj); + smp_wmb(); + + sync_timeline_put(obj); return 0; }