FAILED: patch "[PATCH] scsi: qla2xxx: Do command completion on abort timeout" failed to apply to 5.3-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.3-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 71c80b75ce8f08c0978ce9a9816b81b5c3ce5e12 Mon Sep 17 00:00:00 2001
From: Quinn Tran <[email protected]>
Date: Tue, 5 Nov 2019 07:06:51 -0800
Subject: [PATCH] scsi: qla2xxx: Do command completion on abort timeout
On switch, fabric and mgt command timeout, driver send Abort to tell FW to return the original command. If abort is timeout, then return both Abort and original command for cleanup.
drivers/scsi/qla2xxx/qla_def.h +1 -0
@@ -604,6 +604,7 @@ typedef struct srb {const char *name;int iocbs;struct qla_qpair *qpair; +struct srb *cmd_sp;struct list_head elem;u32 gen1;/* scratch */ u32 gen2;/* scratch */
drivers/scsi/qla2xxx/qla_init.c +18 -0
@@ -101,8 +101,22 @@ static void qla24xx_abort_iocb_timeout(void *data)u32 handle;unsigned long flags; +if (sp->cmd_sp) +ql_dbg (ql_dbg_async, sp->vha,0x507c , +"Abort timeout - cmd hdl=%x, cmd type=%x hdl=%x, type=%x\n" , + sp->cmd_sp->handle, sp->cmd_sp->type, + sp->handle, sp->type); +else +ql_dbg (ql_dbg_async, sp->vha,0x507c , +"Abort timeout 2 - hdl=%x, type=%x\n" , + sp->handle, sp->type); +spin_lock_irqsave (qpair->qp_lock_ptr, flags);for (handle =1 ; handle < qpair->req->num_outstanding_cmds; handle++) { +if (sp->cmd_sp && (qpair->req->outstanding_cmds[handle] == + sp->cmd_sp)) + qpair->req->outstanding_cmds[handle] =NULL ; +/* removing the abort */ if (qpair->req->outstanding_cmds[handle] == sp) { qpair->req->outstanding_cmds[handle] =NULL ;
@@ -111,6 +125,9 @@ static void qla24xx_abort_iocb_timeout(void *data) }spin_unlock_irqrestore (qpair->qp_lock_ptr, flags); +if (sp->cmd_sp) + sp->cmd_sp->done (sp->cmd_sp,QLA_OS_TIMER_EXPIRED ); + abt->u.abt.comp_status =CS_TIMEOUT ; sp->done (sp,QLA_OS_TIMER_EXPIRED ); }
@@ -142,6 +159,7 @@ static int qla24xx_async_abort_cmd(srb_t *cmd_sp, bool wait) sp->type =SRB_ABT_CMD ; sp->name ="abort" ; sp->qpair = cmd_sp->qpair; + sp->cmd_sp = cmd_sp;if (wait) sp->flags =SRB_WAKEUP_ON_COMP ;
Sasha Levin
maintainerQuoted 21 lines · On Sat, Dec 14, 2019 at 04:04:15PM +0100, [email protected] wrote:
The patch below does not apply to the 5.3-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From
71c80b75ce8f08c0978ce9a9816b81b5c3ce5e12Mon Sep 17 00:00:00 2001
From: Quinn Tran <[email protected]>
Date: Tue, 5 Nov 2019 07:06:51 -0800
Subject: [PATCH] scsi: qla2xxx: Do command completion on abort timeoutOn switch, fabric and mgt command timeout, driver send Abort to tell FW to return the original command. If abort is timeout, then return both Abort and original command for cleanup.
Quoted 7 lines
Fixes 219d27d7147e0 ("scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands")Cc [email protected] # 5.2Reviewed-by Ewan D. Milne <[email protected]>Signed-off-by Quinn Tran <[email protected]>Signed-off-by Himanshu Madhani <[email protected]>Signed-off-by Martin K. Petersen <[email protected]>
I took in this additional patch to resolve the conflict:
0c6df59061b2 ("scsi: qla2xxx: Fix abort timeout race condition.")
Signature · 2 lines
Thanks, Sasha