Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb1c4692 authored by John Soni Jose's avatar John Soni Jose Committed by James Bottomley
Browse files

be2iscsi : Fix memory check before unmapping.



 Check DMA memory before it is unmapped.

Signed-off-by: default avatarJohn Soni Jose <sony.john-n@emulex.com>
Signed-off-by: default avatarJayamohan Kallickal <jayamohan.kallickal@emulex.com>
Reviewed-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJames Bottomley <JBottomley@Odin.com>
parent 4e2bdf7a
Loading
Loading
Loading
Loading
+7 −3
Original line number Original line Diff line number Diff line
@@ -1368,8 +1368,10 @@ be_complete_io(struct beiscsi_conn *beiscsi_conn,
	if (io_task->cmd_bhs->iscsi_hdr.flags & ISCSI_FLAG_CMD_READ)
	if (io_task->cmd_bhs->iscsi_hdr.flags & ISCSI_FLAG_CMD_READ)
		conn->rxdata_octets += resid;
		conn->rxdata_octets += resid;
unmap:
unmap:
	if (io_task->scsi_cmnd) {
		scsi_dma_unmap(io_task->scsi_cmnd);
		scsi_dma_unmap(io_task->scsi_cmnd);
		io_task->scsi_cmnd = NULL;
		io_task->scsi_cmnd = NULL;
	}
	iscsi_complete_scsi_task(task, exp_cmdsn, max_cmdsn);
	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);
		spin_unlock_bh(&phba->mgmt_sgl_lock);
	}
	}


	if (io_task->mtask_addr)
	if (io_task->mtask_addr) {
		pci_unmap_single(phba->pcidev,
		pci_unmap_single(phba->pcidev,
				 io_task->mtask_addr,
				 io_task->mtask_addr,
				 io_task->mtask_data_count,
				 io_task->mtask_data_count,
				 PCI_DMA_TODEVICE);
				 PCI_DMA_TODEVICE);
		io_task->mtask_addr = 0;
	}
}
}


/**
/**