Skip to content

Commit 10ae30b

Browse files
Quinn Tranmartinkpetersen
authored andcommitted
scsi: qla2xxx: Flush all sessions on zone disable
On Zone Disable, certain switches would ignore all commands. This causes timeout for both switch scan command and abort of that command. On detection of this condition, all sessions will be shutdown. Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Himanshu Madhani <[email protected]> Signed-off-by: Quinn Tran <[email protected]> Signed-off-by: Himanshu Madhani <[email protected]> Signed-off-by: Nilesh Javali <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
1 parent c314a01 commit 10ae30b

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

drivers/scsi/qla2xxx/qla_gs.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3736,6 +3736,18 @@ static void qla2x00_async_gpnft_gnnft_sp_done(srb_t *sp, int res)
37363736
unsigned long flags;
37373737
const char *name = sp->name;
37383738

3739+
if (res == QLA_OS_TIMER_EXPIRED) {
3740+
/* switch is ignoring all commands.
3741+
* This might be a zone disable behavior.
3742+
* This means we hit 64s timeout.
3743+
* 22s GPNFT + 44s Abort = 64s
3744+
*/
3745+
ql_dbg(ql_dbg_disc, vha, 0xffff,
3746+
"%s: Switch Zone check please .\n",
3747+
name);
3748+
qla2x00_mark_all_devices_lost(vha);
3749+
}
3750+
37393751
/*
37403752
* We are in an Interrupt context, queue up this
37413753
* sp for GNNFT_DONE work. This will allow all

0 commit comments

Comments
 (0)