Lines Matching refs:dq
2432 static void nvme_wait_dq(struct nvme_delq_ctx *dq, struct nvme_dev *dev) in nvme_wait_dq() argument
2434 dq->waiter = current; in nvme_wait_dq()
2439 if (!atomic_read(&dq->refcount)) in nvme_wait_dq()
2453 flush_kthread_worker(dq->worker); in nvme_wait_dq()
2461 static void nvme_put_dq(struct nvme_delq_ctx *dq) in nvme_put_dq() argument
2463 atomic_dec(&dq->refcount); in nvme_put_dq()
2464 if (dq->waiter) in nvme_put_dq()
2465 wake_up_process(dq->waiter); in nvme_put_dq()
2468 static struct nvme_delq_ctx *nvme_get_dq(struct nvme_delq_ctx *dq) in nvme_get_dq() argument
2470 atomic_inc(&dq->refcount); in nvme_get_dq()
2471 return dq; in nvme_get_dq()
2476 struct nvme_delq_ctx *dq = nvmeq->cmdinfo.ctx; in nvme_del_queue_end() local
2477 nvme_put_dq(dq); in nvme_del_queue_end()
2537 struct nvme_delq_ctx dq; in nvme_disable_io_queues() local
2549 dq.waiter = NULL; in nvme_disable_io_queues()
2550 atomic_set(&dq.refcount, 0); in nvme_disable_io_queues()
2551 dq.worker = &worker; in nvme_disable_io_queues()
2557 nvmeq->cmdinfo.ctx = nvme_get_dq(&dq); in nvme_disable_io_queues()
2558 nvmeq->cmdinfo.worker = dq.worker; in nvme_disable_io_queues()
2560 queue_kthread_work(dq.worker, &nvmeq->cmdinfo.work); in nvme_disable_io_queues()
2562 nvme_wait_dq(&dq, dev); in nvme_disable_io_queues()