Lines Matching refs:ws
381 sbq->ws = kzalloc_node(SBQ_WAIT_QUEUES * sizeof(*sbq->ws), flags, node); in sbitmap_queue_init_node()
382 if (!sbq->ws) { in sbitmap_queue_init_node()
389 init_waitqueue_head(&sbq->ws[i].wait); in sbitmap_queue_init_node()
390 atomic_set(&sbq->ws[i].wait_cnt, sbq->wake_batch); in sbitmap_queue_init_node()
413 atomic_set(&sbq->ws[i].wait_cnt, 1); in sbitmap_queue_update_wake_batch()
500 struct sbq_wait_state *ws = &sbq->ws[wake_index]; in sbq_wake_ptr() local
502 if (waitqueue_active(&ws->wait)) { in sbq_wake_ptr()
505 return ws; in sbq_wake_ptr()
516 struct sbq_wait_state *ws; in __sbq_wake_up() local
520 ws = sbq_wake_ptr(sbq); in __sbq_wake_up()
521 if (!ws) in __sbq_wake_up()
524 wait_cnt = atomic_dec_return(&ws->wait_cnt); in __sbq_wake_up()
542 ret = atomic_cmpxchg(&ws->wait_cnt, wait_cnt, wake_batch); in __sbq_wake_up()
545 wake_up_nr(&ws->wait, wake_batch); in __sbq_wake_up()
603 struct sbq_wait_state *ws = &sbq->ws[wake_index]; in sbitmap_queue_wake_all() local
605 if (waitqueue_active(&ws->wait)) in sbitmap_queue_wake_all()
606 wake_up(&ws->wait); in sbitmap_queue_wake_all()
636 struct sbq_wait_state *ws = &sbq->ws[i]; in sbitmap_queue_show() local
639 atomic_read(&ws->wait_cnt), in sbitmap_queue_show()
640 waitqueue_active(&ws->wait) ? "active" : "inactive"); in sbitmap_queue_show()
650 struct sbq_wait_state *ws, in sbitmap_add_wait_queue() argument
656 add_wait_queue(&ws->wait, &sbq_wait->wait); in sbitmap_add_wait_queue()
672 struct sbq_wait_state *ws, in sbitmap_prepare_to_wait() argument
679 prepare_to_wait_exclusive(&ws->wait, &sbq_wait->wait, state); in sbitmap_prepare_to_wait()
683 void sbitmap_finish_wait(struct sbitmap_queue *sbq, struct sbq_wait_state *ws, in sbitmap_finish_wait() argument
686 finish_wait(&ws->wait, &sbq_wait->wait); in sbitmap_finish_wait()