Lines Matching refs:fence
105 struct dma_fence *fence) in reservation_object_add_shared_inplace() argument
110 dma_fence_get(fence); in reservation_object_add_shared_inplace()
121 if (old_fence->context == fence->context) { in reservation_object_add_shared_inplace()
123 RCU_INIT_POINTER(fobj->shared[i], fence); in reservation_object_add_shared_inplace()
142 RCU_INIT_POINTER(fobj->shared[signaled_idx], fence); in reservation_object_add_shared_inplace()
145 RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence); in reservation_object_add_shared_inplace()
159 struct dma_fence *fence) in reservation_object_add_shared_replace() argument
163 dma_fence_get(fence); in reservation_object_add_shared_replace()
166 RCU_INIT_POINTER(fobj->shared[0], fence); in reservation_object_add_shared_replace()
183 if (check->context == fence->context || in reservation_object_add_shared_replace()
190 RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence); in reservation_object_add_shared_replace()
200 RCU_INIT_POINTER(obj->fence, fobj); in reservation_object_add_shared_replace()
227 struct dma_fence *fence) in reservation_object_add_shared_fence() argument
235 reservation_object_add_shared_inplace(obj, old, fence); in reservation_object_add_shared_fence()
237 reservation_object_add_shared_replace(obj, old, fobj, fence); in reservation_object_add_shared_fence()
249 struct dma_fence *fence) in reservation_object_add_excl_fence() argument
259 if (fence) in reservation_object_add_excl_fence()
260 dma_fence_get(fence); in reservation_object_add_excl_fence()
265 RCU_INIT_POINTER(obj->fence_excl, fence); in reservation_object_add_excl_fence()
296 src_list = rcu_dereference(src->fence); in reservation_object_copy_fences()
310 src_list = rcu_dereference(src->fence); in reservation_object_copy_fences()
319 struct dma_fence *fence; in reservation_object_copy_fences() local
321 fence = rcu_dereference(src_list->shared[i]); in reservation_object_copy_fences()
323 &fence->flags)) in reservation_object_copy_fences()
326 if (!dma_fence_get_rcu(fence)) { in reservation_object_copy_fences()
328 src_list = rcu_dereference(src->fence); in reservation_object_copy_fences()
332 if (dma_fence_is_signaled(fence)) { in reservation_object_copy_fences()
333 dma_fence_put(fence); in reservation_object_copy_fences()
337 rcu_assign_pointer(dst_list->shared[dst_list->shared_count++], fence); in reservation_object_copy_fences()
356 RCU_INIT_POINTER(dst->fence, dst_list); in reservation_object_copy_fences()
405 fobj = rcu_dereference(obj->fence); in reservation_object_get_fences_rcu()
486 struct dma_fence *fence; in reservation_object_wait_timeout_rcu() local
497 fence = rcu_dereference(obj->fence_excl); in reservation_object_wait_timeout_rcu()
498 if (fence && !test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) { in reservation_object_wait_timeout_rcu()
499 if (!dma_fence_get_rcu(fence)) in reservation_object_wait_timeout_rcu()
502 if (dma_fence_is_signaled(fence)) { in reservation_object_wait_timeout_rcu()
503 dma_fence_put(fence); in reservation_object_wait_timeout_rcu()
504 fence = NULL; in reservation_object_wait_timeout_rcu()
508 fence = NULL; in reservation_object_wait_timeout_rcu()
513 rcu_dereference(obj->fence); in reservation_object_wait_timeout_rcu()
518 for (i = 0; !fence && i < shared_count; ++i) { in reservation_object_wait_timeout_rcu()
533 fence = lfence; in reservation_object_wait_timeout_rcu()
539 if (fence) { in reservation_object_wait_timeout_rcu()
541 dma_fence_put(fence); in reservation_object_wait_timeout_rcu()
545 ret = dma_fence_wait_timeout(fence, intr, ret); in reservation_object_wait_timeout_rcu()
546 dma_fence_put(fence); in reservation_object_wait_timeout_rcu()
562 struct dma_fence *fence, *lfence = passed_fence; in reservation_object_test_signaled_single() local
566 fence = dma_fence_get_rcu(lfence); in reservation_object_test_signaled_single()
567 if (!fence) in reservation_object_test_signaled_single()
570 ret = !!dma_fence_is_signaled(fence); in reservation_object_test_signaled_single()
571 dma_fence_put(fence); in reservation_object_test_signaled_single()
602 rcu_dereference(obj->fence); in reservation_object_test_signaled_rcu()
608 struct dma_fence *fence = rcu_dereference(fobj->shared[i]); in reservation_object_test_signaled_rcu() local
610 ret = reservation_object_test_signaled_single(fence); in reservation_object_test_signaled_rcu()