|
@@ -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;
|
|
|
}
|
|
|
|