Lines Matching refs:prev
23 struct dma_fence *prev;
26 prev = dma_fence_get_rcu_safe(&chain->prev);
28 return prev;
42 struct dma_fence *prev, *replacement, *tmp;
50 while ((prev = dma_fence_chain_get_prev(chain))) {
52 prev_chain = to_dma_fence_chain(prev);
59 if (!dma_fence_is_signaled(prev))
65 tmp = unrcu_pointer(cmpxchg(&chain->prev, RCU_INITIALIZER(prev),
67 if (tmp == prev)
71 dma_fence_put(prev);
75 return prev;
181 struct dma_fence *prev;
186 while ((prev = rcu_dereference_protected(chain->prev, true))) {
189 if (kref_read(&prev->refcount) > 1)
192 prev_chain = to_dma_fence_chain(prev);
199 chain->prev = prev_chain->prev;
200 RCU_INIT_POINTER(prev_chain->prev, NULL);
201 dma_fence_put(prev);
203 dma_fence_put(prev);
233 * @prev: the previous fence
241 struct dma_fence *prev,
245 struct dma_fence_chain *prev_chain = to_dma_fence_chain(prev);
249 rcu_assign_pointer(chain->prev, prev);
254 if (prev_chain && __dma_fence_is_later(prev, seqno, prev->seqno)) {
255 context = prev->context;
256 chain->prev_seqno = prev->seqno;
261 seqno = max(prev->seqno, seqno);
269 * the prev fence and not through the contained fence.