| From 131076235882f41cf50583ca59bee4a97f12cfd9 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 31 Aug 2018 11:24:36 -0700 |
| Subject: scsi: qla2xxx: Fix iIDMA error |
| |
| From: Quinn Tran <quinn.tran@cavium.com> |
| |
| [ Upstream commit 8d9bf0a9a268f7ca0b811d6e6a1fc783afa5c746 ] |
| |
| When switch responds with error for Get Port Speed Command (GPSC), driver |
| should not proceed with telling FW about the speed of the remote port. |
| |
| Signed-off-by: Quinn Tran <quinn.tran@cavium.com> |
| Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/scsi/qla2xxx/qla_gs.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c |
| index 34ff4bbc8de10..d611cf722244c 100644 |
| --- a/drivers/scsi/qla2xxx/qla_gs.c |
| +++ b/drivers/scsi/qla2xxx/qla_gs.c |
| @@ -3277,7 +3277,7 @@ static void qla24xx_async_gpsc_sp_done(void *s, int res) |
| ql_dbg(ql_dbg_disc, vha, 0x2019, |
| "GPSC command unsupported, disabling query.\n"); |
| ha->flags.gpsc_supported = 0; |
| - res = QLA_SUCCESS; |
| + goto done; |
| } |
| } else { |
| switch (be16_to_cpu(ct_rsp->rsp.gpsc.speed)) { |
| @@ -3310,7 +3310,6 @@ static void qla24xx_async_gpsc_sp_done(void *s, int res) |
| be16_to_cpu(ct_rsp->rsp.gpsc.speeds), |
| be16_to_cpu(ct_rsp->rsp.gpsc.speed)); |
| } |
| -done: |
| memset(&ea, 0, sizeof(ea)); |
| ea.event = FCME_GPSC_DONE; |
| ea.rc = res; |
| @@ -3318,6 +3317,7 @@ done: |
| ea.sp = sp; |
| qla2x00_fcport_event_handler(vha, &ea); |
| |
| +done: |
| sp->free(sp); |
| } |
| |
| -- |
| 2.20.1 |
| |