Lines Matching refs:node
67 static inline bool spsc_queue_push(struct spsc_queue *queue, struct spsc_node *node)
71 node->next = NULL;
75 tail = (struct spsc_node **)atomic_long_xchg(&queue->tail, (long)&node->next);
76 WRITE_ONCE(*tail, node);
80 * In case of first element verify new node will be visible to the consumer
93 struct spsc_node *next, *node;
98 node = READ_ONCE(queue->head);
100 if (!node)
103 next = READ_ONCE(node->next);
110 (long)&node->next, (long) &queue->head) != (long)&node->next) {
114 } while (unlikely(!(queue->head = READ_ONCE(node->next))));
119 return node;