Lines Matching refs:ws
445 sbq->ws = kzalloc_node(SBQ_WAIT_QUEUES * sizeof(*sbq->ws), flags, node); in sbitmap_queue_init_node()
446 if (!sbq->ws) { in sbitmap_queue_init_node()
452 init_waitqueue_head(&sbq->ws[i].wait); in sbitmap_queue_init_node()
453 atomic_set(&sbq->ws[i].wait_cnt, sbq->wake_batch); in sbitmap_queue_init_node()
475 atomic_set(&sbq->ws[i].wait_cnt, 1); in sbitmap_queue_update_wake_batch()
569 struct sbq_wait_state *ws = &sbq->ws[wake_index]; in sbq_wake_ptr() local
571 if (waitqueue_active(&ws->wait)) { in sbq_wake_ptr()
574 return ws; in sbq_wake_ptr()
585 struct sbq_wait_state *ws; in __sbq_wake_up() local
589 ws = sbq_wake_ptr(sbq); in __sbq_wake_up()
590 if (!ws) in __sbq_wake_up()
593 wait_cnt = atomic_dec_return(&ws->wait_cnt); in __sbq_wake_up()
611 ret = atomic_cmpxchg(&ws->wait_cnt, wait_cnt, wake_batch); in __sbq_wake_up()
614 wake_up_nr(&ws->wait, wake_batch); in __sbq_wake_up()
710 struct sbq_wait_state *ws = &sbq->ws[wake_index]; in sbitmap_queue_wake_all() local
712 if (waitqueue_active(&ws->wait)) in sbitmap_queue_wake_all()
713 wake_up(&ws->wait); in sbitmap_queue_wake_all()
743 struct sbq_wait_state *ws = &sbq->ws[i]; in sbitmap_queue_show() local
746 atomic_read(&ws->wait_cnt), in sbitmap_queue_show()
747 waitqueue_active(&ws->wait) ? "active" : "inactive"); in sbitmap_queue_show()
757 struct sbq_wait_state *ws, in sbitmap_add_wait_queue() argument
763 add_wait_queue(&ws->wait, &sbq_wait->wait); in sbitmap_add_wait_queue()
779 struct sbq_wait_state *ws, in sbitmap_prepare_to_wait() argument
786 prepare_to_wait_exclusive(&ws->wait, &sbq_wait->wait, state); in sbitmap_prepare_to_wait()
790 void sbitmap_finish_wait(struct sbitmap_queue *sbq, struct sbq_wait_state *ws, in sbitmap_finish_wait() argument
793 finish_wait(&ws->wait, &sbq_wait->wait); in sbitmap_finish_wait()