Lines Matching refs:next
46 struct optimistic_spin_node *next = NULL; in osq_wait_next() local
78 if (node->next) { in osq_wait_next()
79 next = xchg(&node->next, NULL); in osq_wait_next()
80 if (next) in osq_wait_next()
87 return next; in osq_wait_next()
93 struct optimistic_spin_node *prev, *next; in osq_lock() local
98 node->next = NULL; in osq_lock()
126 WRITE_ONCE(prev->next, node); in osq_lock()
161 if (data_race(prev->next) == node && in osq_lock()
162 cmpxchg(&prev->next, node, NULL) == node) in osq_lock()
189 next = osq_wait_next(lock, node, prev); in osq_lock()
190 if (!next) in osq_lock()
201 WRITE_ONCE(next->prev, prev); in osq_lock()
202 WRITE_ONCE(prev->next, next); in osq_lock()
209 struct optimistic_spin_node *node, *next; in osq_unlock() local
223 next = xchg(&node->next, NULL); in osq_unlock()
224 if (next) { in osq_unlock()
225 WRITE_ONCE(next->locked, 1); in osq_unlock()
229 next = osq_wait_next(lock, node, NULL); in osq_unlock()
230 if (next) in osq_unlock()
231 WRITE_ONCE(next->locked, 1); in osq_unlock()