Lines Matching refs:he
94 #define for_each_hash_entry(he, offset, hash) \ argument
95 for (hash &= ~(PV_HE_PER_LINE - 1), he = &pv_lock_hash[hash], offset = 0; \
97 offset++, he = &pv_lock_hash[(hash + offset) & ((1 << pv_lock_hash_bits) - 1)])
102 struct pv_hash_entry *he; in pv_hash() local
104 for_each_hash_entry(he, offset, hash) { in pv_hash()
105 if (!cmpxchg(&he->lock, NULL, lock)) { in pv_hash()
106 WRITE_ONCE(he->node, node); in pv_hash()
107 return &he->lock; in pv_hash()
126 struct pv_hash_entry *he; in pv_unhash() local
129 for_each_hash_entry(he, offset, hash) { in pv_unhash()
130 if (READ_ONCE(he->lock) == lock) { in pv_unhash()
131 node = READ_ONCE(he->node); in pv_unhash()
132 WRITE_ONCE(he->lock, NULL); in pv_unhash()