scsi: qedf: Don't process ELS completion if event is flushed or cleaned up
authorSaurav Kashyap <skashyap@marvell.com>
Fri, 7 Aug 2020 11:06:55 +0000 (04:06 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 21 Aug 2020 01:41:52 +0000 (21:41 -0400)
Don't process ELS completion if event is flushed or cleaned up.

Link: https://lore.kernel.org/r/20200807110656.19965-7-jhasan@marvell.com
Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Javed Hasan <jhasan@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qedf/qedf_els.c

index edd6702..e2e80ea 100644 (file)
@@ -147,6 +147,15 @@ void qedf_process_els_compl(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
        QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_ELS, "Entered with xid = 0x%x"
                   " cmd_type = %d.\n", els_req->xid, els_req->cmd_type);
 
+       if ((els_req->event == QEDF_IOREQ_EV_ELS_FLUSH)
+               || (els_req->event == QEDF_IOREQ_EV_CLEANUP_SUCCESS)
+               || (els_req->event == QEDF_IOREQ_EV_CLEANUP_FAILED)) {
+               QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_IO,
+                       "ELS completion xid=0x%x after flush event=0x%x",
+                       els_req->xid, els_req->event);
+               return;
+       }
+
        clear_bit(QEDF_CMD_OUTSTANDING, &els_req->flags);
 
        /* Kill the ELS timer */