Lines Matching refs:next
16 struct qnode *next;
158 * acquire barrier in get_tail_qnode() when the next CPU finds this tail
355 struct qnode *next;
363 next = READ_ONCE(node->next);
364 if (!next)
367 if (next->sleepy)
372 next->sleepy = 1;
395 if (node->next && !node->next->sleepy) {
397 * Propagate sleepy to next waiter. Only if
404 node->next->sleepy = 1;
529 struct qnode *next, *node;
555 node->next = NULL;
579 WRITE_ONCE(prev->next, node);
600 next = READ_ONCE(node->next);
601 if (next)
602 prefetchw(next);
667 goto release; /* We were the tail, no next. */
669 /* There is a next, must wait for node->next != NULL (MCS protocol) */
670 next = READ_ONCE(node->next);
671 if (!next) {
673 while (!(next = READ_ONCE(node->next)))
680 * Unlock the next mcs waiter node. Release barrier is not required
687 int next_cpu = next->cpu;
688 WRITE_ONCE(next->locked, 1);
694 WRITE_ONCE(next->locked, 1);