Lines Matching refs:node
37 struct optimistic_spin_node *node, in osq_wait_next() argument
72 if (node->next) { in osq_wait_next()
73 next = xchg(&node->next, NULL); in osq_wait_next()
86 struct optimistic_spin_node *node = this_cpu_ptr(&osq_node); in osq_lock() local
91 node->locked = 0; in osq_lock()
92 node->next = NULL; in osq_lock()
93 node->cpu = curr; in osq_lock()
100 node->prev = prev; in osq_lock()
101 WRITE_ONCE(prev->next, node); in osq_lock()
112 while (!READ_ONCE(node->locked)) { in osq_lock()
133 if (prev->next == node && in osq_lock()
134 cmpxchg(&prev->next, node, NULL) == node) in osq_lock()
142 if (smp_load_acquire(&node->locked)) in osq_lock()
151 prev = READ_ONCE(node->prev); in osq_lock()
161 next = osq_wait_next(lock, node, prev); in osq_lock()
181 struct optimistic_spin_node *node, *next; in osq_unlock() local
193 node = this_cpu_ptr(&osq_node); in osq_unlock()
194 next = xchg(&node->next, NULL); in osq_unlock()
200 next = osq_wait_next(lock, node, NULL); in osq_unlock()