mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
dma-buf/sync_file: add sync_file_get_fence()
Creates a function that given an sync file descriptor returns a fence containing all fences in the sync_file. v2: Comments by Daniel Vetter - Adapt to new version of fence_collection_init() - Hold a reference for the fence we return v3: - Adapt to use fput() directly - rename to sync_file_get_fence() as we always return one fence v4: Adapt to use fence_array v5: set fence through fence_get() Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
This commit is contained in:
parent
a02b9dc90d
commit
972526a409
2 changed files with 24 additions and 0 deletions
|
@ -116,6 +116,29 @@ static struct sync_file *sync_file_fdget(int fd)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sync_file_get_fence - get the fence related to the sync_file fd
|
||||||
|
* @fd: sync_file fd to get the fence from
|
||||||
|
*
|
||||||
|
* Ensures @fd references a valid sync_file and returns a fence that
|
||||||
|
* represents all fence in the sync_file. On error NULL is returned.
|
||||||
|
*/
|
||||||
|
struct fence *sync_file_get_fence(int fd)
|
||||||
|
{
|
||||||
|
struct sync_file *sync_file;
|
||||||
|
struct fence *fence;
|
||||||
|
|
||||||
|
sync_file = sync_file_fdget(fd);
|
||||||
|
if (!sync_file)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
fence = fence_get(sync_file->fence);
|
||||||
|
fput(sync_file->file);
|
||||||
|
|
||||||
|
return fence;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(sync_file_get_fence);
|
||||||
|
|
||||||
static int sync_file_set_fence(struct sync_file *sync_file,
|
static int sync_file_set_fence(struct sync_file *sync_file,
|
||||||
struct fence **fences, int num_fences)
|
struct fence **fences, int num_fences)
|
||||||
{
|
{
|
||||||
|
|
|
@ -46,5 +46,6 @@ struct sync_file {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sync_file *sync_file_create(struct fence *fence);
|
struct sync_file *sync_file_create(struct fence *fence);
|
||||||
|
struct fence *sync_file_get_fence(int fd);
|
||||||
|
|
||||||
#endif /* _LINUX_SYNC_H */
|
#endif /* _LINUX_SYNC_H */
|
||||||
|
|
Loading…
Reference in a new issue