Daniel Wagner 4c9283
From: Hannes Reinecke <hare@suse.de>
Daniel Wagner 4c9283
Date: Wed, 22 Sep 2021 08:35:25 +0200
Daniel Wagner 4c9283
Subject: nvme: display correct subsystem NQN
Daniel Wagner 4c9283
Patch-mainline: v5.16-rc1
Daniel Wagner 4c9283
Git-commit: e5ea42faa773c6a6bb5d9e9f5c2cc808940b5a55
Daniel Wagner 4c9283
References: bsc#1192761
Daniel Wagner 4c9283
Daniel Wagner 4c9283
With discovery controllers supporting unique subsystem NQNs the
Daniel Wagner 4c9283
actual subsystem NQN might be different from that one passed in
Daniel Wagner 4c9283
via the connect args. So add a helper to display the resulting
Daniel Wagner 4c9283
subsystem NQN.
Daniel Wagner 4c9283
Daniel Wagner 4c9283
Signed-off-by: Hannes Reinecke <hare@suse.de>
Daniel Wagner 4c9283
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Daniel Wagner 4c9283
Signed-off-by: Christoph Hellwig <hch@lst.de>
Daniel Wagner 4c9283
Acked-by: Daniel Wagner <dwagner@suse.de>
Daniel Wagner 4c9283
---
Daniel Wagner 4c9283
 drivers/nvme/host/core.c    |    2 +-
Daniel Wagner 4c9283
 drivers/nvme/host/fabrics.h |    7 +++++++
Daniel Wagner 4c9283
 drivers/nvme/host/fc.c      |    2 +-
Daniel Wagner 4c9283
 drivers/nvme/host/rdma.c    |    2 +-
Daniel Wagner 4c9283
 drivers/nvme/host/tcp.c     |    2 +-
Daniel Wagner 4c9283
 5 files changed, 11 insertions(+), 4 deletions(-)
Daniel Wagner 4c9283
Daniel Wagner 4c9283
--- a/drivers/nvme/host/core.c
Daniel Wagner 4c9283
+++ b/drivers/nvme/host/core.c
Daniel Wagner 4c9283
@@ -208,7 +208,7 @@ EXPORT_SYMBOL_GPL(nvme_reset_ctrl_sync);
Daniel Wagner 4c9283
 static void nvme_do_delete_ctrl(struct nvme_ctrl *ctrl)
Daniel Wagner 4c9283
 {
Daniel Wagner 4c9283
 	dev_info(ctrl->device,
Daniel Wagner 4c9283
-		 "Removing ctrl: NQN \"%s\"\n", ctrl->opts->subsysnqn);
Daniel Wagner 4c9283
+		 "Removing ctrl: NQN \"%s\"\n", nvmf_ctrl_subsysnqn(ctrl));
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
 	flush_work(&ctrl->reset_work);
Daniel Wagner 4c9283
 	nvme_stop_ctrl(ctrl);
Daniel Wagner 4c9283
--- a/drivers/nvme/host/fabrics.h
Daniel Wagner 4c9283
+++ b/drivers/nvme/host/fabrics.h
Daniel Wagner 4c9283
@@ -179,6 +179,13 @@ nvmf_ctlr_matches_baseopts(struct nvme_c
Daniel Wagner 4c9283
 	return true;
Daniel Wagner 4c9283
 }
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
+static inline char *nvmf_ctrl_subsysnqn(struct nvme_ctrl *ctrl)
Daniel Wagner 4c9283
+{
Daniel Wagner 4c9283
+	if (!ctrl->subsys)
Daniel Wagner 4c9283
+		return ctrl->opts->subsysnqn;
Daniel Wagner 4c9283
+	return ctrl->subsys->subnqn;
Daniel Wagner 4c9283
+}
Daniel Wagner 4c9283
+
Daniel Wagner 4c9283
 int nvmf_reg_read32(struct nvme_ctrl *ctrl, u32 off, u32 *val);
Daniel Wagner 4c9283
 int nvmf_reg_read64(struct nvme_ctrl *ctrl, u32 off, u64 *val);
Daniel Wagner 4c9283
 int nvmf_reg_write32(struct nvme_ctrl *ctrl, u32 off, u32 val);
Daniel Wagner 4c9283
--- a/drivers/nvme/host/fc.c
Daniel Wagner 4c9283
+++ b/drivers/nvme/host/fc.c
Daniel Wagner 4c9283
@@ -3573,7 +3573,7 @@ nvme_fc_init_ctrl(struct device *dev, st
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
 	dev_info(ctrl->ctrl.device,
Daniel Wagner 4c9283
 		"NVME-FC{%d}: new ctrl: NQN \"%s\"\n",
Daniel Wagner 4c9283
-		ctrl->cnum, ctrl->ctrl.opts->subsysnqn);
Daniel Wagner 4c9283
+		ctrl->cnum, nvmf_ctrl_subsysnqn(&ctrl->ctrl));
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
 	return &ctrl->ctrl;
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
--- a/drivers/nvme/host/rdma.c
Daniel Wagner 4c9283
+++ b/drivers/nvme/host/rdma.c
Daniel Wagner 4c9283
@@ -2392,7 +2392,7 @@ static struct nvme_ctrl *nvme_rdma_creat
Daniel Wagner 4c9283
 		goto out_uninit_ctrl;
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
 	dev_info(ctrl->ctrl.device, "new ctrl: NQN \"%s\", addr %pISpcs\n",
Daniel Wagner 4c9283
-		ctrl->ctrl.opts->subsysnqn, &ctrl->addr);
Daniel Wagner 4c9283
+		nvmf_ctrl_subsysnqn(&ctrl->ctrl), &ctrl->addr);
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
 	mutex_lock(&nvme_rdma_ctrl_mutex);
Daniel Wagner 4c9283
 	list_add_tail(&ctrl->list, &nvme_rdma_ctrl_list);
Daniel Wagner 4c9283
--- a/drivers/nvme/host/tcp.c
Daniel Wagner 4c9283
+++ b/drivers/nvme/host/tcp.c
Daniel Wagner 4c9283
@@ -2614,7 +2614,7 @@ static struct nvme_ctrl *nvme_tcp_create
Daniel Wagner 4c9283
 		goto out_uninit_ctrl;
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
 	dev_info(ctrl->ctrl.device, "new ctrl: NQN \"%s\", addr %pISp\n",
Daniel Wagner 4c9283
-		ctrl->ctrl.opts->subsysnqn, &ctrl->addr);
Daniel Wagner 4c9283
+		nvmf_ctrl_subsysnqn(&ctrl->ctrl), &ctrl->addr);
Daniel Wagner 4c9283
 
Daniel Wagner 4c9283
 	mutex_lock(&nvme_tcp_ctrl_mutex);
Daniel Wagner 4c9283
 	list_add_tail(&ctrl->list, &nvme_tcp_ctrl_list);