Lines Matching refs:next
40 struct optimistic_spin_node *next = NULL; in osq_wait_next() local
72 if (node->next) { in osq_wait_next()
73 next = xchg(&node->next, NULL); in osq_wait_next()
74 if (next) in osq_wait_next()
81 return next; in osq_wait_next()
87 struct optimistic_spin_node *prev, *next; in osq_lock() local
92 node->next = NULL; in osq_lock()
107 WRITE_ONCE(prev->next, node); in osq_lock()
139 if (prev->next == node && in osq_lock()
140 cmpxchg(&prev->next, node, NULL) == node) in osq_lock()
167 next = osq_wait_next(lock, node, prev); in osq_lock()
168 if (!next) in osq_lock()
179 WRITE_ONCE(next->prev, prev); in osq_lock()
180 WRITE_ONCE(prev->next, next); in osq_lock()
187 struct optimistic_spin_node *node, *next; in osq_unlock() local
201 next = xchg(&node->next, NULL); in osq_unlock()
202 if (next) { in osq_unlock()
203 WRITE_ONCE(next->locked, 1); in osq_unlock()
207 next = osq_wait_next(lock, node, NULL); in osq_unlock()
208 if (next) in osq_unlock()
209 WRITE_ONCE(next->locked, 1); in osq_unlock()