[PATCH v2 02/13] scsi: fnic: Use fnic_num for non-SCSI identifiers

From: Karan Tilak Kumar

Date: Wed May 27 2026 - 15:51:57 EST


Use SCSI host numbers only for FCP initiator paths.

Name NVMe-facing FDMI and debugfs entries with fnic_num, and record trace
events with the driver instance number.

Reviewed-by: Sesidhar Baddela <sebaddel@xxxxxxxxx>
Reviewed-by: Arulprabhu Ponnusamy <arulponn@xxxxxxxxx>
Reviewed-by: Gian Carlo Boffa <gcboffa@xxxxxxxxx>
Reviewed-by: Arun Easi <aeasi@xxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxxxx>
Reviewed-by: Lee Duncan <lduncan@xxxxxxxx>
Signed-off-by: Karan Tilak Kumar <kartilak@xxxxxxxxx>
Co-developed-by: Hannes Reinecke <hare@xxxxxxxxxx>
---
drivers/scsi/fnic/fdls_disc.c | 8 ++++++--
drivers/scsi/fnic/fnic_debugfs.c | 5 ++++-
drivers/scsi/fnic/fnic_scsi.c | 2 +-
3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/fnic/fdls_disc.c b/drivers/scsi/fnic/fdls_disc.c
index d22cd4ffe3fb..48b37748f44a 100644
--- a/drivers/scsi/fnic/fdls_disc.c
+++ b/drivers/scsi/fnic/fdls_disc.c
@@ -2083,8 +2083,12 @@ static void fdls_fdmi_register_pa(struct fnic_iport_s *iport)
fnic_fdmi_attr_set(fdmi_attr, FNIC_FDMI_TYPE_MAX_FRAME_SIZE,
FNIC_FDMI_MFS_LEN, data, &attr_off_bytes);

- snprintf(tmp_data, FNIC_FDMI_OS_NAME_LEN - 1, "host%d",
- fnic->host->host_no);
+ if (IS_FNIC_FCP_INITIATOR(fnic))
+ snprintf(tmp_data, FNIC_FDMI_OS_NAME_LEN - 1, "host%d",
+ fnic->host->host_no);
+ else if (IS_FNIC_NVME_INITIATOR(fnic))
+ snprintf(tmp_data, FNIC_FDMI_OS_NAME_LEN - 1, "nvfnic%d",
+ fnic->fnic_num);
strscpy_pad(data, tmp_data, FNIC_FDMI_OS_NAME_LEN);
fnic_fdmi_attr_set(fdmi_attr, FNIC_FDMI_TYPE_OS_NAME,
FNIC_FDMI_OS_NAME_LEN, data, &attr_off_bytes);
diff --git a/drivers/scsi/fnic/fnic_debugfs.c b/drivers/scsi/fnic/fnic_debugfs.c
index ba86964fb45e..467fba29ea5f 100644
--- a/drivers/scsi/fnic/fnic_debugfs.c
+++ b/drivers/scsi/fnic/fnic_debugfs.c
@@ -681,7 +681,10 @@ int fnic_stats_debugfs_init(struct fnic *fnic)
{
char name[16];

- snprintf(name, sizeof(name), "host%d", fnic->host->host_no);
+ if (IS_FNIC_FCP_INITIATOR(fnic))
+ snprintf(name, sizeof(name), "host%d", fnic->host->host_no);
+ else if (IS_FNIC_NVME_INITIATOR(fnic))
+ snprintf(name, sizeof(name), "nvfnic%d", fnic->fnic_num);

fnic->fnic_stats_debugfs_host = debugfs_create_dir(name,
fnic_stats_debugfs_root);
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
index 0759540f6675..b92260583c67 100644
--- a/drivers/scsi/fnic/fnic_scsi.c
+++ b/drivers/scsi/fnic/fnic_scsi.c
@@ -894,7 +894,7 @@ static inline void fnic_fcpio_ack_handler(struct fnic *fnic,

spin_unlock_irqrestore(&fnic->wq_copy_lock[wq_index], flags);
FNIC_TRACE(fnic_fcpio_ack_handler,
- fnic->host->host_no, 0, 0, ox_id_tag[2], ox_id_tag[3],
+ fnic->fnic_num, 0, 0, ox_id_tag[2], ox_id_tag[3],
ox_id_tag[4], ox_id_tag[5]);
}

--
2.47.1