Lines Matching defs:fence
45 struct virtio_gpu_fence *fence = to_virtio_fence(f);
47 if (WARN_ON_ONCE(fence->f.seqno == 0))
48 /* leaked fence outside driver before completing
51 if (atomic64_read(&fence->drv->last_seq) >= fence->f.seqno)
63 struct virtio_gpu_fence *fence = to_virtio_fence(f);
65 snprintf(str, size, "%llu", (u64)atomic64_read(&fence->drv->last_seq));
79 struct virtio_gpu_fence *fence = kzalloc(sizeof(struct virtio_gpu_fence),
81 if (!fence)
82 return fence;
84 fence->drv = drv;
86 /* This only partially initializes the fence because the seqno is
87 * unknown yet. The fence must not be used outside of the driver
90 dma_fence_init(&fence->f, &virtio_fence_ops, &drv->lock, drv->context, 0);
92 return fence;
97 struct virtio_gpu_fence *fence)
103 fence->f.seqno = ++drv->sync_seq;
104 dma_fence_get(&fence->f);
105 list_add_tail(&fence->node, &drv->fences);
108 trace_dma_fence_emit(&fence->f);
111 cmd_hdr->fence_id = cpu_to_le64(fence->f.seqno);
118 struct virtio_gpu_fence *fence, *tmp;
123 list_for_each_entry_safe(fence, tmp, &drv->fences, node) {
124 if (last_seq < fence->f.seqno)
126 dma_fence_signal_locked(&fence->f);
127 list_del(&fence->node);
128 dma_fence_put(&fence->f);