[PATCH 4/5] scsi: fnic: Refactor in_remove flag and call to fnic_fcpio_reset()
From: Karan Tilak Kumar
Date: Tue Feb 17 2026 - 17:43:03 EST
Modify logic to remove unnecessary acquire/release of spinlock
to set in_remove flag. There's also no need to check for init status
to call fnic_fcpio_reset.
Tested-by: Karan Tilak Kumar <kartilak@xxxxxxxxx>
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>
Signed-off-by: Karan Tilak Kumar <kartilak@xxxxxxxxx>
Co-developed-by: Hannes Reinecke <hare@xxxxxxxxxx>
---
drivers/scsi/fnic/fnic_scsi.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
index 05b203b9b69b..7e41bb8a7628 100644
--- a/drivers/scsi/fnic/fnic_scsi.c
+++ b/drivers/scsi/fnic/fnic_scsi.c
@@ -1972,14 +1972,11 @@ void fnic_scsi_unload(struct fnic *fnic)
*/
spin_lock_irqsave(&fnic->fnic_lock, flags);
fnic->iport.state = FNIC_IPORT_STATE_LINK_WAIT;
- spin_unlock_irqrestore(&fnic->fnic_lock, flags);
-
- if (fdls_get_state(&fnic->iport.fabric) != FDLS_STATE_INIT)
- fnic_fcpio_reset(fnic);
- spin_lock_irqsave(&fnic->fnic_lock, flags);
fnic->in_remove = 1;
spin_unlock_irqrestore(&fnic->fnic_lock, flags);
+ fnic_fcpio_reset(fnic);
+
fnic_flush_tport_event_list(fnic);
fnic_delete_fcp_tports(fnic);
}
--
2.47.1