mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 02:52:51 +03:00
gpu: nvgpu: add dup to os fence ops
The os fences can currently be constructed from a file descriptor, from a raw syncpt id/value pair, or a struct nvgpu_semaphore. Each os fence object has exactly one owner for simplicity as the owner is a wrapper for a refcounted object. This does not allow copying the fences, so extend struct nvgpu_os_fence_ops with a member to increment the refcount of the underlying fence. This can be used to "duplicate" the object. The copy needs an eventual call to ops->drop_ref() to release the refcount. This will be useful to decouple the features of struct nvgpu_fence_type needed in the kernel and those needed for userspace. Jira NVGPU-5248 Change-Id: Ie7b943f0851f62842e941a7283b389bac84ae9ae Signed-off-by: Konsta Hölttä <kholtta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2359063 Reviewed-by: automaticguardword <automaticguardword@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
Alex Waterman
parent
9a93dc3c83
commit
8c224adb91
@@ -53,6 +53,13 @@ int nvgpu_os_fence_dma_install_fd(struct nvgpu_os_fence *s, int fd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nvgpu_os_fence_dma_dup(struct nvgpu_os_fence *s)
|
||||
{
|
||||
struct dma_fence *fence = nvgpu_get_dma_fence(s);
|
||||
|
||||
dma_fence_get(fence);
|
||||
}
|
||||
|
||||
int nvgpu_os_fence_fdget(struct nvgpu_os_fence *fence_out,
|
||||
struct nvgpu_channel *c, int fd)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user