Hannes Reinecke 2cb976
From: Max Gurtovoy <mgurtovoy@nvidia.com>
Hannes Reinecke 2cb976
Date: Tue, 30 Mar 2021 23:01:19 +0000
Hannes Reinecke 2cb976
Subject: [PATCH] nvme-tcp: check sgl supported by target
Hannes Reinecke 2cb976
Git-commit: 73ffcefcfca047e5c13a3f81d2cf22eff18732c1
Hannes Reinecke 2cb976
Patch-mainline: v5.13-rc1
Hannes Reinecke 2cb976
References: git-fixes
Hannes Reinecke 2cb976
Hannes Reinecke 2cb976
SGLs support is mandatory for NVMe/tcp, make sure that the target is
Hannes Reinecke 2cb976
aligned to the specification.
Hannes Reinecke 2cb976
Hannes Reinecke 2cb976
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Hannes Reinecke 2cb976
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Hannes Reinecke 2cb976
Signed-off-by: Christoph Hellwig <hch@lst.de>
Hannes Reinecke 2cb976
Acked-by: Hannes Reinecke <hare@suse.com>
Hannes Reinecke 2cb976
---
Hannes Reinecke 2cb976
 drivers/nvme/host/tcp.c | 5 +++++
Hannes Reinecke 2cb976
 1 file changed, 5 insertions(+)
Hannes Reinecke 2cb976
Hannes Reinecke 2cb976
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
Hannes Reinecke 2cb976
index b9e8ea3a7501..8e55d8bc0c50 100644
Hannes Reinecke 2cb976
--- a/drivers/nvme/host/tcp.c
Hannes Reinecke 2cb976
+++ b/drivers/nvme/host/tcp.c
Hannes Reinecke 2cb976
@@ -1966,6 +1966,11 @@ static int nvme_tcp_setup_ctrl(struct nvme_ctrl *ctrl, bool new)
Hannes Reinecke 2cb976
 		goto destroy_admin;
Hannes Reinecke 2cb976
 	}
Hannes Reinecke 2cb976
 
Hannes Reinecke 2cb976
+	if (!(ctrl->sgls & ((1 << 0) | (1 << 1)))) {
Hannes Reinecke 2cb976
+		dev_err(ctrl->device, "Mandatory sgls are not supported!\n");
Hannes Reinecke 2cb976
+		goto destroy_admin;
Hannes Reinecke 2cb976
+	}
Hannes Reinecke 2cb976
+
Hannes Reinecke 2cb976
 	if (opts->queue_size > ctrl->sqsize + 1)
Hannes Reinecke 2cb976
 		dev_warn(ctrl->device,
Hannes Reinecke 2cb976
 			"queue_size %zu > ctrl sqsize %u, clamping down\n",
Hannes Reinecke 2cb976
-- 
Hannes Reinecke 2cb976
2.29.2
Hannes Reinecke 2cb976