Skip to content

Commit

Permalink
scsi: qla2xxx: Flush all sessions on zone disable
Browse files Browse the repository at this point in the history
[ Upstream commit 10ae30b ]

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/20200806111014.28434-2-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Quinn Tran authored and gregkh committed Sep 3, 2020
1 parent 018360e commit 2626e3b
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/scsi/qla2xxx/qla_gs.c
Expand Up @@ -3736,6 +3736,18 @@ static void qla2x00_async_gpnft_gnnft_sp_done(srb_t *sp, int res)
unsigned long flags;
const char *name = sp->name;

if (res == QLA_OS_TIMER_EXPIRED) {
/* switch is ignoring all commands.
* This might be a zone disable behavior.
* This means we hit 64s timeout.
* 22s GPNFT + 44s Abort = 64s
*/
ql_dbg(ql_dbg_disc, vha, 0xffff,
"%s: Switch Zone check please .\n",
name);
qla2x00_mark_all_devices_lost(vha);
}

/*
* We are in an Interrupt context, queue up this
* sp for GNNFT_DONE work. This will allow all
Expand Down

0 comments on commit 2626e3b

Please sign in to comment.