Lines Matching full:he
203 #define for_each_hash_entry(he, offset, hash) \ argument
204 for (hash &= ~(PV_HE_PER_LINE - 1), he = &pv_lock_hash[hash], offset = 0; \
206 offset++, he = &pv_lock_hash[(hash + offset) & ((1 << pv_lock_hash_bits) - 1)])
211 struct pv_hash_entry *he; in pv_hash() local
214 for_each_hash_entry(he, offset, hash) { in pv_hash()
217 if (try_cmpxchg(&he->lock, &old, lock)) { in pv_hash()
218 WRITE_ONCE(he->node, node); in pv_hash()
220 return &he->lock; in pv_hash()
239 struct pv_hash_entry *he; in pv_unhash() local
242 for_each_hash_entry(he, offset, hash) { in pv_unhash()
243 if (READ_ONCE(he->lock) == lock) { in pv_unhash()
244 node = READ_ONCE(he->node); in pv_unhash()
245 WRITE_ONCE(he->lock, NULL); in pv_unhash()