Lines Matching refs:q
116 void futex_wake_mark(struct wake_q_head *wake_q, struct futex_q *q) in futex_wake_mark() argument
118 struct task_struct *p = q->task; in futex_wake_mark()
120 if (WARN(q->pi_state || q->rt_waiter, "refusing to wake PI futex\n")) in futex_wake_mark()
124 __futex_unqueue(q); in futex_wake_mark()
132 smp_store_release(&q->lock_ptr, NULL); in futex_wake_mark()
333 void futex_wait_queue(struct futex_hash_bucket *hb, struct futex_q *q, in futex_wait_queue() argument
343 futex_queue(q, hb); in futex_wait_queue()
353 if (likely(!plist_node_empty(&q->list))) { in futex_wait_queue()
383 if (!futex_unqueue(&v[i].q)) in unqueue_multiple()
434 &vs[i].q.key, FUTEX_READ); in futex_wait_multiple_setup()
444 struct futex_q *q = &vs[i].q; in futex_wait_multiple_setup() local
447 hb = futex_q_lock(q); in futex_wait_multiple_setup()
456 futex_queue(q, hb); in futex_wait_multiple_setup()
510 if (!READ_ONCE(vs->q.lock_ptr)) in futex_sleep_multiple()
585 struct futex_q *q, struct futex_hash_bucket **hb) in futex_wait_setup() argument
609 ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q->key, FUTEX_READ); in futex_wait_setup()
614 *hb = futex_q_lock(q); in futex_wait_setup()
644 struct futex_q q = futex_q_init; in futex_wait() local
649 q.bitset = bitset; in futex_wait()
659 ret = futex_wait_setup(uaddr, val, flags, &q, &hb); in futex_wait()
664 futex_wait_queue(hb, &q, to); in futex_wait()
668 if (!futex_unqueue(&q)) in futex_wait()