diff mbox series

[08/16] qla2xxx: Fix early srb free on abort

Message ID 20180911171827.29016-9-himanshu.madhani@cavium.com (mailing list archive)
State Accepted
Headers show
Series qla2xxx: Driver updates for scsi-misc | expand

Commit Message

Madhani, Himanshu Sept. 11, 2018, 5:18 p.m. UTC
From: Quinn Tran <quinn.tran@cavium.com>

Task abort can take 2 paths: 1) serial/synchronous abort
where the calling thread will put to sleep, wait for completion
and free cmd resource.  2) async abort where the cmd free will
be free by the completion thread.  For path 2, driver is freeing
the SRB too early.

Fixes: f6145e86d21f ("scsi: qla2xxx: Fix race between switch cmd completion and timeout")
Cc: stable@vger.kernel.org # 4.19
Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
---
 drivers/scsi/qla2xxx/qla_init.c | 2 ++
 1 file changed, 2 insertions(+)
diff mbox series

Patch

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 2e836d1427bb..0575210aa8f1 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1850,6 +1850,8 @@  qla24xx_async_abort_cmd(srb_t *cmd_sp, bool wait)
 		wait_for_completion(&abt_iocb->u.abt.comp);
 		rval = abt_iocb->u.abt.comp_status == CS_COMPLETE ?
 			QLA_SUCCESS : QLA_FUNCTION_FAILED;
+	} else {
+		goto done;
 	}
 
 done_free_sp: