Re: [PATCH v4 4/5] scsi: fnic: Turn off FDMI ACTIVE flags on link down

From: John Meneghini
Date: Fri Jun 13 2025 - 16:29:08 EST


Hi Karan.

You've got two patches in this series with the same Fixes: tag.

[PATCH v4 2/5] scsi: fnic: Fix crash in fnic_wq_cmpl_handler when FDMI times out
Fixes: 09c1e6ab4ab2 ("scsi: fnic: Add and integrate support for FDMI")

[PATCH v4 4/5] scsi: fnic: Turn off FDMI ACTIVE flags on link down
Fixes: 09c1e6ab4ab2 ("scsi: fnic: Add and integrate support for FDMI")

both of these patches modify the same file:

drivers/scsi/fnic/fdls_disc.c

So I recommend you squash patch 4/5 and patch 2/5 into one.

Thanks,

/John

On 6/12/25 6:18 PM, Karan Tilak Kumar wrote:
When the link goes down and comes up, FDMI requests are not sent out
anymore.
Fix bug by turning off FNIC_FDMI_ACTIVE when the link goes down.

Fixes: 09c1e6ab4ab2 ("scsi: fnic: Add and integrate support for FDMI")
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>
Tested-by: Karan Tilak Kumar <kartilak@xxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Karan Tilak Kumar <kartilak@xxxxxxxxx>
---
Changes between v3 and v4:
- Incorporate review comments from Dan:
- Remove comments from Cc tag

Changes between v2 and v3:
- Incorporate review comments from Dan:
- Add Cc to stable

Changes between v1 and v2:
- Incorporate review comments from Dan:
- Add Fixes tag
---
drivers/scsi/fnic/fdls_disc.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/fnic/fdls_disc.c b/drivers/scsi/fnic/fdls_disc.c
index 9e9939d41fa8..14691db4d5f9 100644
--- a/drivers/scsi/fnic/fdls_disc.c
+++ b/drivers/scsi/fnic/fdls_disc.c
@@ -5078,9 +5078,12 @@ void fnic_fdls_link_down(struct fnic_iport_s *iport)
fdls_delete_tport(iport, tport);
}
- if ((fnic_fdmi_support == 1) && (iport->fabric.fdmi_pending > 0)) {
- timer_delete_sync(&iport->fabric.fdmi_timer);
- iport->fabric.fdmi_pending = 0;
+ if (fnic_fdmi_support == 1) {
+ if (iport->fabric.fdmi_pending > 0) {
+ timer_delete_sync(&iport->fabric.fdmi_timer);
+ iport->fabric.fdmi_pending = 0;
+ }
+ iport->flags &= ~FNIC_FDMI_ACTIVE;
}
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,