Lines Matching refs:hb
29 * the hb spinlock can be avoided and simply return. In order for this
147 * the hb->lock.
157 struct futex_hash_bucket *hb;
173 hb = futex_hash(&key);
176 if (!futex_hb_waiters_pending(hb))
179 spin_lock(&hb->lock);
181 plist_for_each_entry_safe(this, next, &hb->chain, list) {
198 spin_unlock(&hb->lock);
339 * @hb: the futex hash bucket, must be locked by the caller
343 void futex_wait_queue(struct futex_hash_bucket *hb, struct futex_q *q,
353 futex_queue(q, hb);
416 struct futex_hash_bucket *hb;
455 hb = futex_q_lock(q);
461 * next futex. Queue each futex at this moment so hb can
464 futex_queue(q, hb);
468 futex_q_unlock(hb);
582 * @hb: storage for hash_bucket pointer to be returned to caller
586 * Return with the hb lock held on success, and unlocked on failure.
589 * - 0 - uaddr contains val and hb has been locked;
590 * - <1 - -EFAULT or -EWOULDBLOCK (uaddr does not contain val) and hb is unlocked
593 struct futex_q *q, struct futex_hash_bucket **hb)
622 *hb = futex_q_lock(q);
627 futex_q_unlock(*hb);
640 futex_q_unlock(*hb);
651 struct futex_hash_bucket *hb;
661 * Prepare to wait on uaddr. On success, it holds hb->lock and q
664 ret = futex_wait_setup(uaddr, val, flags, &q, &hb);
669 futex_wait_queue(hb, &q, to);