diff options
| -rw-r--r-- | drivers/scsi/bnx2fc/bnx2fc_els.c | 1 | ||||
| -rw-r--r-- | drivers/scsi/bnx2fc/bnx2fc_io.c | 8 | 
2 files changed, 7 insertions, 2 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc_els.c b/drivers/scsi/bnx2fc/bnx2fc_els.c index 49d1e4d74bec..0d0ab2e272cb 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_els.c +++ b/drivers/scsi/bnx2fc/bnx2fc_els.c @@ -707,6 +707,7 @@ static int bnx2fc_initiate_els(struct bnx2fc_rport *tgt, unsigned int op,  	els_req->cb_func = cb_func;  	cb_arg->io_req = els_req;  	els_req->cb_arg = cb_arg; +	els_req->data_xfer_len = data_len;  	mp_req = (struct bnx2fc_mp_req *)&(els_req->mp_req);  	rc = bnx2fc_init_mp_req(els_req); diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c index 520dabecc90b..30916fd3a9f0 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_io.c +++ b/drivers/scsi/bnx2fc/bnx2fc_io.c @@ -623,8 +623,12 @@ int bnx2fc_init_mp_req(struct bnx2fc_cmd *io_req)  	mp_req = (struct bnx2fc_mp_req *)&(io_req->mp_req);  	memset(mp_req, 0, sizeof(struct bnx2fc_mp_req)); -	mp_req->req_len = sizeof(struct fcp_cmnd); -	io_req->data_xfer_len = mp_req->req_len; +	if (io_req->cmd_type != BNX2FC_ELS) { +		mp_req->req_len = sizeof(struct fcp_cmnd); +		io_req->data_xfer_len = mp_req->req_len; +	} else +		mp_req->req_len = io_req->data_xfer_len; +  	mp_req->req_buf = dma_alloc_coherent(&hba->pcidev->dev, CNIC_PAGE_SIZE,  					     &mp_req->req_buf_dma,  					     GFP_ATOMIC);  | 
