scsi: fnic: Turn off FDMI ACTIVE flags on link down
authorKaran Tilak Kumar <kartilak@cisco.com>
Wed, 18 Jun 2025 00:34:29 +0000 (17:34 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 20 Jun 2025 03:06:27 +0000 (23:06 -0400)
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@cisco.com>
Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com>
Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com>
Reviewed-by: Arun Easi <aeasi@cisco.com>
Tested-by: Karan Tilak Kumar <kartilak@cisco.com>
Cc: stable@vger.kernel.org
Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com>
Link: https://lore.kernel.org/r/20250618003431.6314-2-kartilak@cisco.com
Reviewed-by: John Meneghini <jmeneghi@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/fnic/fdls_disc.c
drivers/scsi/fnic/fnic.h

index 36b498ad55b4b676e9fa675a84f59f60b2562ac9..fa9cf0b37d72ff2cf48ff2c567213a2aa7bba9bc 100644 (file)
@@ -5029,9 +5029,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,
index 86e293ce530d13fe6fff0dd391c07cbea09a927e..c2fdc6553e627ad7929d2b472be38fcf024d8905 100644 (file)
@@ -30,7 +30,7 @@
 
 #define DRV_NAME               "fnic"
 #define DRV_DESCRIPTION                "Cisco FCoE HBA Driver"
-#define DRV_VERSION            "1.8.0.1"
+#define DRV_VERSION            "1.8.0.2"
 #define PFX                    DRV_NAME ": "
 #define DFX                     DRV_NAME "%d: "