diff options
Diffstat (limited to 'drivers/nvme/host/rdma.c')
| -rw-r--r-- | drivers/nvme/host/rdma.c | 18 | 
1 files changed, 11 insertions, 7 deletions
| diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c index 53ac4d7442ba..660c774fa9e1 100644 --- a/drivers/nvme/host/rdma.c +++ b/drivers/nvme/host/rdma.c @@ -314,6 +314,7 @@ static int nvme_rdma_init_request(struct blk_mq_tag_set *set,  			NVME_RDMA_DATA_SGL_SIZE;  	req->queue = queue; +	nvme_req(rq)->cmd = req->sqe.data;  	return 0;  } @@ -736,8 +737,11 @@ static int nvme_rdma_alloc_io_queues(struct nvme_rdma_ctrl *ctrl)  		return ret;  	ctrl->ctrl.queue_count = nr_io_queues + 1; -	if (ctrl->ctrl.queue_count < 2) -		return 0; +	if (ctrl->ctrl.queue_count < 2) { +		dev_err(ctrl->ctrl.device, +			"unable to set any I/O queues\n"); +		return -ENOMEM; +	}  	dev_info(ctrl->ctrl.device,  		"creating %d I/O queues.\n", nr_io_queues); @@ -798,7 +802,7 @@ static struct blk_mq_tag_set *nvme_rdma_alloc_tagset(struct nvme_ctrl *nctrl,  		memset(set, 0, sizeof(*set));  		set->ops = &nvme_rdma_admin_mq_ops;  		set->queue_depth = NVME_AQ_MQ_TAG_DEPTH; -		set->reserved_tags = 2; /* connect + keep-alive */ +		set->reserved_tags = NVMF_RESERVED_TAGS;  		set->numa_node = nctrl->numa_node;  		set->cmd_size = sizeof(struct nvme_rdma_request) +  				NVME_RDMA_DATA_SGL_SIZE; @@ -811,7 +815,7 @@ static struct blk_mq_tag_set *nvme_rdma_alloc_tagset(struct nvme_ctrl *nctrl,  		memset(set, 0, sizeof(*set));  		set->ops = &nvme_rdma_mq_ops;  		set->queue_depth = nctrl->sqsize + 1; -		set->reserved_tags = 1; /* fabric connect */ +		set->reserved_tags = NVMF_RESERVED_TAGS;  		set->numa_node = nctrl->numa_node;  		set->flags = BLK_MQ_F_SHOULD_MERGE;  		set->cmd_size = sizeof(struct nvme_rdma_request) + @@ -917,7 +921,7 @@ static int nvme_rdma_configure_admin_queue(struct nvme_rdma_ctrl *ctrl,  	blk_mq_unquiesce_queue(ctrl->ctrl.admin_q); -	error = nvme_init_identify(&ctrl->ctrl); +	error = nvme_init_ctrl_finish(&ctrl->ctrl);  	if (error)  		goto out_quiesce_queue; @@ -2038,7 +2042,7 @@ static blk_status_t nvme_rdma_queue_rq(struct blk_mq_hw_ctx *hctx,  	struct request *rq = bd->rq;  	struct nvme_rdma_request *req = blk_mq_rq_to_pdu(rq);  	struct nvme_rdma_qe *sqe = &req->sqe; -	struct nvme_command *c = sqe->data; +	struct nvme_command *c = nvme_req(rq)->cmd;  	struct ib_device *dev;  	bool queue_ready = test_bit(NVME_RDMA_Q_LIVE, &queue->flags);  	blk_status_t ret; @@ -2061,7 +2065,7 @@ static blk_status_t nvme_rdma_queue_rq(struct blk_mq_hw_ctx *hctx,  	ib_dma_sync_single_for_cpu(dev, sqe->dma,  			sizeof(struct nvme_command), DMA_TO_DEVICE); -	ret = nvme_setup_cmd(ns, rq, c); +	ret = nvme_setup_cmd(ns, rq);  	if (ret)  		goto unmap_qe; | 
