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()
101 WRITE_ONCE(prev->next, node); in osq_lock()
133 if (prev->next == node && in osq_lock()
134 cmpxchg(&prev->next, node, NULL) == node) in osq_lock()
161 next = osq_wait_next(lock, node, prev); in osq_lock()
162 if (!next) in osq_lock()
173 WRITE_ONCE(next->prev, prev); in osq_lock()
174 WRITE_ONCE(prev->next, next); in osq_lock()
181 struct optimistic_spin_node *node, *next; in osq_unlock() local
194 next = xchg(&node->next, NULL); in osq_unlock()
195 if (next) { in osq_unlock()
196 WRITE_ONCE(next->locked, 1); in osq_unlock()
200 next = osq_wait_next(lock, node, NULL); in osq_unlock()
201 if (next) in osq_unlock()
202 WRITE_ONCE(next->locked, 1); in osq_unlock()