Lines Matching defs:hb
69 * requeue_futex() - Requeue a futex_q from one hb to another
205 * @hb: the hash_bucket of the requeue target futex
218 * 4) Set the q->lock_ptr to the requeue target hb->lock for the case that
227 * Must be called with both q->lock_ptr and hb->lock held.
231 struct futex_hash_bucket *hb)
243 futex_hash_get(hb);
245 q->lock_ptr = &hb->lock;
457 CLASS(hb, hb1)(&key1);
458 CLASS(hb, hb2)(&key2);
696 * @hb: the hash_bucket futex_q was original enqueued on
706 int handle_early_requeue_pi_wakeup(struct futex_hash_bucket *hb,
713 * With the hb lock held, we avoid races while we process the wakeup.
714 * We only need to hold hb (and not hb2) to ensure atomicity as the
715 * wakeup code can't change q.key from uaddr to uaddr2 if we hold hb.
719 WARN_ON_ONCE(&hb->lock != q->lock_ptr);
725 plist_del(&q->list, &hb->chain);
726 futex_hb_waiters_dec(hb);
815 * Prepare to wait on uaddr. On success, it holds hb->lock and q
822 /* Queue the futex_q, drop the hb lock, wait for wakeup. */
828 CLASS(hb, hb)(&q.key);
830 spin_lock(&hb->lock);
831 ret = handle_early_requeue_pi_wakeup(hb, &q, to);
832 spin_unlock(&hb->lock);
899 CLASS(hb, hb)(&q.key);
901 futex_hash_put(hb);