mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 01:57:06 +07:00
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/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>
This commit is contained in:
parent
c314a014b1
commit
10ae30ba66
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user