Lines Matching refs:dq
2772 static void nvme_wait_dq(struct nvme_delq_ctx *dq, struct nvme_dev *dev) in nvme_wait_dq() argument
2774 dq->waiter = current; in nvme_wait_dq()
2779 if (!atomic_read(&dq->refcount)) in nvme_wait_dq()
2793 flush_kthread_worker(dq->worker); in nvme_wait_dq()
2801 static void nvme_put_dq(struct nvme_delq_ctx *dq) in nvme_put_dq() argument
2803 atomic_dec(&dq->refcount); in nvme_put_dq()
2804 if (dq->waiter) in nvme_put_dq()
2805 wake_up_process(dq->waiter); in nvme_put_dq()
2808 static struct nvme_delq_ctx *nvme_get_dq(struct nvme_delq_ctx *dq) in nvme_get_dq() argument
2810 atomic_inc(&dq->refcount); in nvme_get_dq()
2811 return dq; in nvme_get_dq()
2816 struct nvme_delq_ctx *dq = nvmeq->cmdinfo.ctx; in nvme_del_queue_end() local
2817 nvme_put_dq(dq); in nvme_del_queue_end()
2881 struct nvme_delq_ctx dq; in nvme_disable_io_queues() local
2893 dq.waiter = NULL; in nvme_disable_io_queues()
2894 atomic_set(&dq.refcount, 0); in nvme_disable_io_queues()
2895 dq.worker = &worker; in nvme_disable_io_queues()
2901 nvmeq->cmdinfo.ctx = nvme_get_dq(&dq); in nvme_disable_io_queues()
2902 nvmeq->cmdinfo.worker = dq.worker; in nvme_disable_io_queues()
2904 queue_kthread_work(dq.worker, &nvmeq->cmdinfo.work); in nvme_disable_io_queues()
2906 nvme_wait_dq(&dq, dev); in nvme_disable_io_queues()