Lines Matching refs:fence
86 struct fence *fence) in reservation_object_add_shared_inplace() argument
90 fence_get(fence); in reservation_object_add_shared_inplace()
96 struct fence *old_fence; in reservation_object_add_shared_inplace()
101 if (old_fence->context == fence->context) { in reservation_object_add_shared_inplace()
103 RCU_INIT_POINTER(fobj->shared[i], fence); in reservation_object_add_shared_inplace()
116 RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence); in reservation_object_add_shared_inplace()
127 struct fence *fence) in reservation_object_add_shared_replace() argument
130 struct fence *old_fence = NULL; in reservation_object_add_shared_replace()
132 fence_get(fence); in reservation_object_add_shared_replace()
135 RCU_INIT_POINTER(fobj->shared[0], fence); in reservation_object_add_shared_replace()
149 struct fence *check; in reservation_object_add_shared_replace()
154 if (!old_fence && check->context == fence->context) { in reservation_object_add_shared_replace()
156 RCU_INIT_POINTER(fobj->shared[i], fence); in reservation_object_add_shared_replace()
161 RCU_INIT_POINTER(fobj->shared[fobj->shared_count], fence); in reservation_object_add_shared_replace()
172 RCU_INIT_POINTER(obj->fence, fobj); in reservation_object_add_shared_replace()
188 struct fence *fence) in reservation_object_add_shared_fence() argument
197 reservation_object_add_shared_inplace(obj, old, fence); in reservation_object_add_shared_fence()
199 reservation_object_add_shared_replace(obj, old, fobj, fence); in reservation_object_add_shared_fence()
204 struct fence *fence) in reservation_object_add_excl_fence() argument
206 struct fence *old_fence = reservation_object_get_excl(obj); in reservation_object_add_excl_fence()
214 if (fence) in reservation_object_add_excl_fence()
215 fence_get(fence); in reservation_object_add_excl_fence()
220 RCU_INIT_POINTER(obj->fence_excl, fence); in reservation_object_add_excl_fence()
237 struct fence **pfence_excl, in reservation_object_get_fences_rcu()
239 struct fence ***pshared) in reservation_object_get_fences_rcu()
243 struct fence **shared = NULL, *fence_excl = NULL; in reservation_object_get_fences_rcu()
254 fobj = rcu_dereference(obj->fence); in reservation_object_get_fences_rcu()
256 struct fence **nshared; in reservation_object_get_fences_rcu()
326 struct fence *fence; in reservation_object_wait_timeout_rcu() local
334 fence = NULL; in reservation_object_wait_timeout_rcu()
341 rcu_dereference(obj->fence); in reservation_object_wait_timeout_rcu()
350 struct fence *lfence = rcu_dereference(fobj->shared[i]); in reservation_object_wait_timeout_rcu()
363 fence = lfence; in reservation_object_wait_timeout_rcu()
369 struct fence *fence_excl = rcu_dereference(obj->fence_excl); in reservation_object_wait_timeout_rcu()
382 fence = fence_excl; in reservation_object_wait_timeout_rcu()
387 if (fence) { in reservation_object_wait_timeout_rcu()
388 ret = fence_wait_timeout(fence, intr, ret); in reservation_object_wait_timeout_rcu()
389 fence_put(fence); in reservation_object_wait_timeout_rcu()
403 reservation_object_test_signaled_single(struct fence *passed_fence) in reservation_object_test_signaled_single()
405 struct fence *fence, *lfence = passed_fence; in reservation_object_test_signaled_single() local
409 fence = fence_get_rcu(lfence); in reservation_object_test_signaled_single()
410 if (!fence) in reservation_object_test_signaled_single()
413 ret = !!fence_is_signaled(fence); in reservation_object_test_signaled_single()
414 fence_put(fence); in reservation_object_test_signaled_single()
434 rcu_dereference(obj->fence); in reservation_object_test_signaled_rcu()
443 struct fence *fence = rcu_dereference(fobj->shared[i]); in reservation_object_test_signaled_rcu() local
445 ret = reservation_object_test_signaled_single(fence); in reservation_object_test_signaled_rcu()
461 struct fence *fence_excl = rcu_dereference(obj->fence_excl); in reservation_object_test_signaled_rcu()