Lines Matching full:hb
438 * @hb: the hash bucket the futex_q's reside in
441 * Must be called with the hb lock held.
443 struct futex_q *futex_top_waiter(struct futex_hash_bucket *hb, union futex_key *key) in futex_top_waiter() argument
447 plist_for_each_entry(this, &hb->chain, list) { in futex_top_waiter()
493 struct futex_hash_bucket *hb; in __futex_unqueue() local
499 hb = container_of(q->lock_ptr, struct futex_hash_bucket, lock); in __futex_unqueue()
500 plist_del(&q->list, &hb->chain); in __futex_unqueue()
501 futex_hb_waiters_dec(hb); in __futex_unqueue()
506 __acquires(&hb->lock) in futex_q_lock()
508 struct futex_hash_bucket *hb; in futex_q_lock() local
510 hb = futex_hash(&q->key); in futex_q_lock()
520 futex_hb_waiters_inc(hb); /* implies smp_mb(); (A) */ in futex_q_lock()
522 q->lock_ptr = &hb->lock; in futex_q_lock()
524 spin_lock(&hb->lock); in futex_q_lock()
525 return hb; in futex_q_lock()
528 void futex_q_unlock(struct futex_hash_bucket *hb) in futex_q_unlock() argument
529 __releases(&hb->lock) in futex_q_unlock()
531 spin_unlock(&hb->lock); in futex_q_unlock()
532 futex_hb_waiters_dec(hb); in futex_q_unlock()
535 void __futex_queue(struct futex_q *q, struct futex_hash_bucket *hb, in __futex_queue() argument
551 plist_add(&q->list, &hb->chain); in __futex_queue()
952 struct futex_hash_bucket *hb; in exit_pi_state_list() local
965 hb = futex_hash(&key); in exit_pi_state_list()
985 spin_lock(&hb->lock); in exit_pi_state_list()
995 spin_unlock(&hb->lock); in exit_pi_state_list()
1007 spin_unlock(&hb->lock); in exit_pi_state_list()