Lines Matching refs:node
62 struct spin_wait *node; in arch_spin_lock_setup() local
65 node = per_cpu_ptr(&spin_wait[0], cpu); in arch_spin_lock_setup()
66 for (ix = 0; ix < 4; ix++, node++) { in arch_spin_lock_setup()
67 memset(node, 0, sizeof(*node)); in arch_spin_lock_setup()
68 node->node_id = ((cpu + 1) << _Q_TAIL_CPU_OFFSET) + in arch_spin_lock_setup()
106 static inline int arch_spin_yield_target(int lock, struct spin_wait *node) in arch_spin_yield_target() argument
110 if (node == NULL || node->prev == NULL) in arch_spin_yield_target()
112 while (node->prev) in arch_spin_yield_target()
113 node = node->prev; in arch_spin_yield_target()
114 return node->node_id >> _Q_TAIL_CPU_OFFSET; in arch_spin_yield_target()
119 struct spin_wait *node, *next; in arch_spin_lock_queued() local
125 node = this_cpu_ptr(&spin_wait[ix]); in arch_spin_lock_queued()
126 node->prev = node->next = NULL; in arch_spin_lock_queued()
127 node_id = node->node_id; in arch_spin_lock_queued()
156 node->prev = arch_spin_decode_tail(tail_id); in arch_spin_lock_queued()
157 WRITE_ONCE(node->prev->next, node); in arch_spin_lock_queued()
161 owner = arch_spin_yield_target(old, node); in arch_spin_lock_queued()
168 while (READ_ONCE(node->prev) != NULL) { in arch_spin_lock_queued()
173 owner = arch_spin_yield_target(old, node); in arch_spin_lock_queued()
202 while ((next = READ_ONCE(node->next)) == NULL) in arch_spin_lock_queued()