Lines Matching refs:next
16 struct qnode *next;
157 * acquire barrier in get_tail_qnode() when the next CPU finds this tail
358 struct qnode *next;
370 next = READ_ONCE(node->next);
371 if (!next)
375 next->yield_cpu = owner;
378 next->yield_cpu = owner;
400 if (node->next && node->next->yield_cpu != -1)
401 node->next->yield_cpu = yield_cpu;
420 if (node->next && node->next->yield_cpu != yield_cpu)
421 node->next->yield_cpu = yield_cpu;
543 struct qnode *next, *node;
570 node->next = NULL;
593 WRITE_ONCE(prev->next, node);
618 next = READ_ONCE(node->next);
619 if (next)
620 prefetchw(next);
685 goto release; /* We were the tail, no next. */
687 /* There is a next, must wait for node->next != NULL (MCS protocol) */
688 next = READ_ONCE(node->next);
689 if (!next) {
691 while (!(next = READ_ONCE(node->next)))
698 * Unlock the next mcs waiter node. Release barrier is not required
705 int next_cpu = next->cpu;
706 WRITE_ONCE(next->locked, 1);
712 WRITE_ONCE(next->locked, 1);