Lines Matching refs:prev
23 struct dma_fence *prev; in dma_fence_chain_get_prev() local
26 prev = dma_fence_get_rcu_safe(&chain->prev); in dma_fence_chain_get_prev()
28 return prev; in dma_fence_chain_get_prev()
42 struct dma_fence *prev, *replacement, *tmp; in dma_fence_chain_walk() local
50 while ((prev = dma_fence_chain_get_prev(chain))) { in dma_fence_chain_walk()
52 prev_chain = to_dma_fence_chain(prev); in dma_fence_chain_walk()
59 if (!dma_fence_is_signaled(prev)) in dma_fence_chain_walk()
65 tmp = cmpxchg((struct dma_fence __force **)&chain->prev, in dma_fence_chain_walk()
66 prev, replacement); in dma_fence_chain_walk()
67 if (tmp == prev) in dma_fence_chain_walk()
71 dma_fence_put(prev); in dma_fence_chain_walk()
75 return prev; in dma_fence_chain_walk()
182 struct dma_fence *prev; in dma_fence_chain_release() local
187 while ((prev = rcu_dereference_protected(chain->prev, true))) { in dma_fence_chain_release()
190 if (kref_read(&prev->refcount) > 1) in dma_fence_chain_release()
193 prev_chain = to_dma_fence_chain(prev); in dma_fence_chain_release()
200 chain->prev = prev_chain->prev; in dma_fence_chain_release()
201 RCU_INIT_POINTER(prev_chain->prev, NULL); in dma_fence_chain_release()
202 dma_fence_put(prev); in dma_fence_chain_release()
204 dma_fence_put(prev); in dma_fence_chain_release()
231 struct dma_fence *prev, in dma_fence_chain_init() argument
235 struct dma_fence_chain *prev_chain = to_dma_fence_chain(prev); in dma_fence_chain_init()
239 rcu_assign_pointer(chain->prev, prev); in dma_fence_chain_init()
245 if (prev_chain && __dma_fence_is_later(seqno, prev->seqno, prev->ops)) { in dma_fence_chain_init()
246 context = prev->context; in dma_fence_chain_init()
247 chain->prev_seqno = prev->seqno; in dma_fence_chain_init()
252 seqno = max(prev->seqno, seqno); in dma_fence_chain_init()