From: Jayamohan Kallickal <jayamohan.kallic...@emulex.com>

 scsi_cmnd n io_task was not NULL when
  - Link goes down while IO was happening and session is closed.
  - Task for which TMF was sent.

Signed-off-by: John Soni Jose <sony.joh...@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallic...@emulex.com>
---
 drivers/scsi/be2iscsi/be_main.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index ee6094c..d9bd4b9 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -1418,8 +1418,10 @@ be_complete_io(struct beiscsi_conn *beiscsi_conn,
        resid = csol_cqe->res_cnt;
 
        if (!task->sc) {
-               if (io_task->scsi_cmnd)
+               if (io_task->scsi_cmnd) {
                        scsi_dma_unmap(io_task->scsi_cmnd);
+                       io_task->scsi_cmnd = NULL;
+               }
 
                return;
        }
@@ -1456,6 +1458,7 @@ be_complete_io(struct beiscsi_conn *beiscsi_conn,
                conn->rxdata_octets += resid;
 unmap:
        scsi_dma_unmap(io_task->scsi_cmnd);
+       io_task->scsi_cmnd = NULL;
        iscsi_complete_scsi_task(task, exp_cmdsn, max_cmdsn);
 }
 
@@ -4705,6 +4708,11 @@ static void beiscsi_cleanup_task(struct iscsi_task *task)
                        spin_unlock(&phba->io_sgl_lock);
                        io_task->psgl_handle = NULL;
                }
+
+               if (io_task->scsi_cmnd) {
+                       scsi_dma_unmap(io_task->scsi_cmnd);
+                       io_task->scsi_cmnd = NULL;
+               }
        } else {
                if (!beiscsi_conn->login_in_progress)
                        beiscsi_free_mgmt_task_handles(beiscsi_conn, task);
-- 
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to