diff options
author | Quinn Tran <qutran@marvell.com> | 2019-07-26 09:07:31 -0700 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2019-07-30 16:12:02 -0400 |
commit | 7f4374e67b3046c9628cf0ab93a117704a38e95d (patch) | |
tree | 4a3257f913999c36c17978cfe9f6e08c596b8d80 /drivers/scsi/qla2xxx | |
parent | scsi: qla2xxx: Skip FW dump on LOOP initialization error (diff) | |
download | linux-dev-7f4374e67b3046c9628cf0ab93a117704a38e95d.tar.xz linux-dev-7f4374e67b3046c9628cf0ab93a117704a38e95d.zip |
scsi: qla2xxx: Reject EH_{abort|device_reset|target_request}
Reject eh_{abort|device_reset|target_reset} when rport is being torn down
or chip is down.
Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 3c59157bb3bd..6128da465439 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -1296,6 +1296,9 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd) if (!qpair) return SUCCESS; + if (sp->fcport && sp->fcport->deleted) + return SUCCESS; + spin_lock_irqsave(qpair->qp_lock_ptr, flags); if (sp->type != SRB_SCSI_CMD || GET_CMD_SP(sp) != cmd) { /* there's a chance an interrupt could clear @@ -1420,6 +1423,9 @@ __qla2xxx_eh_generic_reset(char *name, enum nexus_wait_type type, if (err != 0) return err; + if (fcport->deleted) + return SUCCESS; + ql_log(ql_log_info, vha, 0x8009, "%s RESET ISSUED nexus=%ld:%d:%llu cmd=%p.\n", name, vha->host_no, cmd->device->id, cmd->device->lun, cmd); @@ -1534,6 +1540,9 @@ qla2xxx_eh_bus_reset(struct scsi_cmnd *cmd) return ret; ret = FAILED; + if (qla2x00_chip_is_down(vha)) + return ret; + ql_log(ql_log_info, vha, 0x8012, "BUS RESET ISSUED nexus=%ld:%d:%llu.\n", vha->host_no, id, lun); |