Lines Matching refs:ws
395 sbq->ws = kzalloc_node(SBQ_WAIT_QUEUES * sizeof(*sbq->ws), flags, node); in sbitmap_queue_init_node()
396 if (!sbq->ws) { in sbitmap_queue_init_node()
403 init_waitqueue_head(&sbq->ws[i].wait); in sbitmap_queue_init_node()
404 atomic_set(&sbq->ws[i].wait_cnt, sbq->wake_batch); in sbitmap_queue_init_node()
427 atomic_set(&sbq->ws[i].wait_cnt, 1); in sbitmap_queue_update_wake_batch()
514 struct sbq_wait_state *ws = &sbq->ws[wake_index]; in sbq_wake_ptr() local
516 if (waitqueue_active(&ws->wait)) { in sbq_wake_ptr()
519 return ws; in sbq_wake_ptr()
530 struct sbq_wait_state *ws; in __sbq_wake_up() local
534 ws = sbq_wake_ptr(sbq); in __sbq_wake_up()
535 if (!ws) in __sbq_wake_up()
538 wait_cnt = atomic_dec_return(&ws->wait_cnt); in __sbq_wake_up()
556 ret = atomic_cmpxchg(&ws->wait_cnt, wait_cnt, wake_batch); in __sbq_wake_up()
559 wake_up_nr(&ws->wait, wake_batch); in __sbq_wake_up()
617 struct sbq_wait_state *ws = &sbq->ws[wake_index]; in sbitmap_queue_wake_all() local
619 if (waitqueue_active(&ws->wait)) in sbitmap_queue_wake_all()
620 wake_up(&ws->wait); in sbitmap_queue_wake_all()
650 struct sbq_wait_state *ws = &sbq->ws[i]; in sbitmap_queue_show() local
653 atomic_read(&ws->wait_cnt), in sbitmap_queue_show()
654 waitqueue_active(&ws->wait) ? "active" : "inactive"); in sbitmap_queue_show()
664 struct sbq_wait_state *ws, in sbitmap_add_wait_queue() argument
671 add_wait_queue(&ws->wait, &sbq_wait->wait); in sbitmap_add_wait_queue()
686 struct sbq_wait_state *ws, in sbitmap_prepare_to_wait() argument
693 prepare_to_wait_exclusive(&ws->wait, &sbq_wait->wait, state); in sbitmap_prepare_to_wait()
697 void sbitmap_finish_wait(struct sbitmap_queue *sbq, struct sbq_wait_state *ws, in sbitmap_finish_wait() argument
700 finish_wait(&ws->wait, &sbq_wait->wait); in sbitmap_finish_wait()