Lines Matching refs:fence

147 	RCU_INIT_POINTER(obj->fence, NULL);  in dma_resv_init()
169 fobj = rcu_dereference_protected(obj->fence, 1); in dma_resv_fini()
217 struct dma_fence *fence; in dma_resv_reserve_shared() local
219 fence = rcu_dereference_protected(old->shared[i], in dma_resv_reserve_shared()
221 if (dma_fence_is_signaled(fence)) in dma_resv_reserve_shared()
222 RCU_INIT_POINTER(new->shared[--k], fence); in dma_resv_reserve_shared()
224 RCU_INIT_POINTER(new->shared[j++], fence); in dma_resv_reserve_shared()
236 rcu_assign_pointer(obj->fence, new); in dma_resv_reserve_shared()
243 struct dma_fence *fence; in dma_resv_reserve_shared() local
245 fence = rcu_dereference_protected(new->shared[i], in dma_resv_reserve_shared()
247 dma_fence_put(fence); in dma_resv_reserve_shared()
263 void dma_resv_add_shared_fence(struct dma_resv *obj, struct dma_fence *fence) in dma_resv_add_shared_fence() argument
269 dma_fence_get(fence); in dma_resv_add_shared_fence()
282 if (old->context == fence->context || in dma_resv_add_shared_fence()
292 RCU_INIT_POINTER(fobj->shared[i], fence); in dma_resv_add_shared_fence()
308 void dma_resv_add_excl_fence(struct dma_resv *obj, struct dma_fence *fence) in dma_resv_add_excl_fence() argument
320 if (fence) in dma_resv_add_excl_fence()
321 dma_fence_get(fence); in dma_resv_add_excl_fence()
325 RCU_INIT_POINTER(obj->fence_excl, fence); in dma_resv_add_excl_fence()
355 src_list = rcu_dereference(src->fence); in dma_resv_copy_fences()
368 src_list = rcu_dereference(src->fence); in dma_resv_copy_fences()
376 struct dma_fence *fence; in dma_resv_copy_fences() local
378 fence = rcu_dereference(src_list->shared[i]); in dma_resv_copy_fences()
380 &fence->flags)) in dma_resv_copy_fences()
383 if (!dma_fence_get_rcu(fence)) { in dma_resv_copy_fences()
385 src_list = rcu_dereference(src->fence); in dma_resv_copy_fences()
389 if (dma_fence_is_signaled(fence)) { in dma_resv_copy_fences()
390 dma_fence_put(fence); in dma_resv_copy_fences()
394 rcu_assign_pointer(dst_list->shared[dst_list->shared_count++], fence); in dma_resv_copy_fences()
409 RCU_INIT_POINTER(dst->fence, dst_list); in dma_resv_copy_fences()
456 fobj = rcu_dereference(obj->fence); in dma_resv_get_fences_rcu()
536 struct dma_fence *fence; in dma_resv_wait_timeout_rcu() local
547 fence = rcu_dereference(obj->fence_excl); in dma_resv_wait_timeout_rcu()
548 if (fence && !test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) { in dma_resv_wait_timeout_rcu()
549 if (!dma_fence_get_rcu(fence)) in dma_resv_wait_timeout_rcu()
552 if (dma_fence_is_signaled(fence)) { in dma_resv_wait_timeout_rcu()
553 dma_fence_put(fence); in dma_resv_wait_timeout_rcu()
554 fence = NULL; in dma_resv_wait_timeout_rcu()
558 fence = NULL; in dma_resv_wait_timeout_rcu()
562 struct dma_resv_list *fobj = rcu_dereference(obj->fence); in dma_resv_wait_timeout_rcu()
567 for (i = 0; !fence && i < shared_count; ++i) { in dma_resv_wait_timeout_rcu()
582 fence = lfence; in dma_resv_wait_timeout_rcu()
588 if (fence) { in dma_resv_wait_timeout_rcu()
590 dma_fence_put(fence); in dma_resv_wait_timeout_rcu()
594 ret = dma_fence_wait_timeout(fence, intr, ret); in dma_resv_wait_timeout_rcu()
595 dma_fence_put(fence); in dma_resv_wait_timeout_rcu()
610 struct dma_fence *fence, *lfence = passed_fence; in dma_resv_test_signaled_single() local
614 fence = dma_fence_get_rcu(lfence); in dma_resv_test_signaled_single()
615 if (!fence) in dma_resv_test_signaled_single()
618 ret = !!dma_fence_is_signaled(fence); in dma_resv_test_signaled_single()
619 dma_fence_put(fence); in dma_resv_test_signaled_single()
648 struct dma_resv_list *fobj = rcu_dereference(obj->fence); in dma_resv_test_signaled_rcu()
654 struct dma_fence *fence = rcu_dereference(fobj->shared[i]); in dma_resv_test_signaled_rcu() local
656 ret = dma_resv_test_signaled_single(fence); in dma_resv_test_signaled_rcu()