Thread (4 messages) 4 messages, 3 authors, 2021-03-18

Re: [PATCH 2/2] nvme-rdma: Fix possible hang when failing to set io queues

From: Chao Leng <hidden>
Date: 2021-03-16 01:34:46

Reviewed-by: Chao Leng <redacted>

On 2021/3/16 5:04, Sagi Grimberg wrote:
quoted hunk ↗ jump to hunk
We only setup io queues for nvme controllers, and it makes
absolutely no sense to allow a controller (re)connect without
any I/O queues. If we happen to fail setting the queue count
for any reason, we should not allow this to be a successful
reconnect as I/O has no chance in going through. Instead
just fail and schedule another reconnect.

Reported-by: Chao Leng <redacted>
Fixes: 711023071960 ("nvme-rdma: add a NVMe over Fabrics RDMA host driver")
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
---
  drivers/nvme/host/rdma.c | 7 +++++--
  1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index 53ac4d7442ba..eb093ea5ffa1 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -736,8 +736,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);
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help