Check DMA memory before it is unmapped.

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 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index dca3a55..1fbbece 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -1368,8 +1368,10 @@ be_complete_io(struct beiscsi_conn *beiscsi_conn,
        if (io_task->cmd_bhs->iscsi_hdr.flags & ISCSI_FLAG_CMD_READ)
                conn->rxdata_octets += resid;
 unmap:
-       scsi_dma_unmap(io_task->scsi_cmnd);
-       io_task->scsi_cmnd = NULL;
+       if (io_task->scsi_cmnd) {
+               scsi_dma_unmap(io_task->scsi_cmnd);
+               io_task->scsi_cmnd = NULL;
+       }
        iscsi_complete_scsi_task(task, exp_cmdsn, max_cmdsn);
 }
 
@@ -4609,11 +4611,13 @@ beiscsi_free_mgmt_task_handles(struct beiscsi_conn 
*beiscsi_conn,
                spin_unlock_bh(&phba->mgmt_sgl_lock);
        }
 
-       if (io_task->mtask_addr)
+       if (io_task->mtask_addr) {
                pci_unmap_single(phba->pcidev,
                                 io_task->mtask_addr,
                                 io_task->mtask_data_count,
                                 PCI_DMA_TODEVICE);
+               io_task->mtask_addr = 0;
+       }
 }
 
 /**
-- 
1.7.1

--
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