Lines Matching refs:node
65 static inline bool spsc_queue_push(struct spsc_queue *queue, struct spsc_node *node) in spsc_queue_push() argument
69 node->next = NULL; in spsc_queue_push()
73 tail = (struct spsc_node **)atomic_long_xchg(&queue->tail, (long)&node->next); in spsc_queue_push()
74 WRITE_ONCE(*tail, node); in spsc_queue_push()
91 struct spsc_node *next, *node; in spsc_queue_pop() local
96 node = READ_ONCE(queue->head); in spsc_queue_pop()
98 if (!node) in spsc_queue_pop()
101 next = READ_ONCE(node->next); in spsc_queue_pop()
108 (long)&node->next, (long) &queue->head) != (long)&node->next) { in spsc_queue_pop()
112 } while (unlikely(!(queue->head = READ_ONCE(node->next)))); in spsc_queue_pop()
117 return node; in spsc_queue_pop()