Lines Matching refs:sq

86 		 req->sq->qid);
713 if (req->sq->size) {
716 old_sqhd = READ_ONCE(req->sq->sqhd);
718 new_sqhd = (old_sqhd + 1) % req->sq->size;
719 } while (!try_cmpxchg(&req->sq->sqhd, &old_sqhd, new_sqhd));
721 req->cqe->sq_head = cpu_to_le16(req->sq->sqhd & 0x0000FFFF);
726 struct nvmet_ctrl *ctrl = req->sq->ctrl;
741 new_error_slot->sqid = cpu_to_le16(req->sq->qid);
757 if (!req->sq->sqhd_disabled)
759 req->cqe->sq_id = cpu_to_le16(req->sq->qid);
774 struct nvmet_sq *sq = req->sq;
777 percpu_ref_put(&sq->ref);
788 void nvmet_sq_setup(struct nvmet_ctrl *ctrl, struct nvmet_sq *sq,
791 sq->sqhd = 0;
792 sq->qid = qid;
793 sq->size = size;
795 ctrl->sqs[qid] = sq;
800 struct nvmet_sq *sq = container_of(ref, struct nvmet_sq, ref);
802 complete(&sq->confirm_done);
805 void nvmet_sq_destroy(struct nvmet_sq *sq)
807 struct nvmet_ctrl *ctrl = sq->ctrl;
813 if (ctrl && ctrl->sqs && ctrl->sqs[0] == sq)
815 percpu_ref_kill_and_confirm(&sq->ref, nvmet_confirm_sq);
816 wait_for_completion(&sq->confirm_done);
817 wait_for_completion(&sq->free_done);
818 percpu_ref_exit(&sq->ref);
819 nvmet_auth_sq_free(sq);
829 sq->ctrl->sqs[sq->qid] = NULL;
831 sq->ctrl = NULL; /* allows reusing the queue later */
838 struct nvmet_sq *sq = container_of(ref, struct nvmet_sq, ref);
840 complete(&sq->free_done);
843 int nvmet_sq_init(struct nvmet_sq *sq)
847 ret = percpu_ref_init(&sq->ref, nvmet_sq_free, 0, GFP_KERNEL);
852 init_completion(&sq->free_done);
853 init_completion(&sq->confirm_done);
854 nvmet_auth_sq_init(sq);
937 struct nvmet_sq *sq, const struct nvmet_fabrics_ops *ops)
943 req->sq = sq;
975 if (unlikely(!req->sq->ctrl))
978 else if (likely(req->sq->qid != 0))
988 if (unlikely(!percpu_ref_tryget_live(&sq->ref))) {
993 if (sq->ctrl)
994 sq->ctrl->reset_tbkas = true;
1006 percpu_ref_put(&req->sq->ref);
1067 !req->sq->ctrl || !req->sq->qid || !req->ns)
1069 return radix_tree_lookup(&req->sq->ctrl->p2p_ns_map, req->ns->nsid);
1294 if (unlikely(!(req->sq->ctrl->cc & NVME_CC_ENABLE))) {
1296 req->cmd->common.opcode, req->sq->qid);
1300 if (unlikely(!(req->sq->ctrl->csts & NVME_CSTS_RDY))) {
1302 req->cmd->common.opcode, req->sq->qid);
1307 pr_warn("qid %d not authenticated\n", req->sq->qid);