Lines Matching refs:hb
69 * requeue_futex() - Requeue a futex_q from one hb to another
200 * @hb: the hash_bucket of the requeue target futex
213 * 4) Set the q->lock_ptr to the requeue target hb->lock for the case that
222 * Must be called with both q->lock_ptr and hb->lock held.
226 struct futex_hash_bucket *hb)
235 q->lock_ptr = &hb->lock;
685 * @hb: the hash_bucket futex_q was original enqueued on
695 int handle_early_requeue_pi_wakeup(struct futex_hash_bucket *hb,
702 * With the hb lock held, we avoid races while we process the wakeup.
703 * We only need to hold hb (and not hb2) to ensure atomicity as the
704 * wakeup code can't change q.key from uaddr to uaddr2 if we hold hb.
708 WARN_ON_ONCE(&hb->lock != q->lock_ptr);
714 plist_del(&q->list, &hb->chain);
715 futex_hb_waiters_dec(hb);
772 struct futex_hash_bucket *hb;
805 * Prepare to wait on uaddr. On success, it holds hb->lock and q
808 ret = futex_wait_setup(uaddr, val, flags, &q, &hb);
817 futex_q_unlock(hb);
822 /* Queue the futex_q, drop the hb lock, wait for wakeup. */
823 futex_wait_queue(hb, &q, to);
828 spin_lock(&hb->lock);
829 ret = handle_early_requeue_pi_wakeup(hb, &q, to);
830 spin_unlock(&hb->lock);