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()
160 if (prev->next == node && in osq_lock()
161 cmpxchg(&prev->next, node, NULL) == node) in osq_lock()
188 next = osq_wait_next(lock, node, prev); in osq_lock()
189 if (!next) in osq_lock()
200 WRITE_ONCE(next->prev, prev); in osq_lock()
201 WRITE_ONCE(prev->next, next); in osq_lock()
208 struct optimistic_spin_node *node, *next; in osq_unlock() local
222 next = xchg(&node->next, NULL); in osq_unlock()
223 if (next) { in osq_unlock()
224 WRITE_ONCE(next->locked, 1); in osq_unlock()
228 next = osq_wait_next(lock, node, NULL); in osq_unlock()
229 if (next) in osq_unlock()
230 WRITE_ONCE(next->locked, 1); in osq_unlock()