|
@@ -93,9 +93,10 @@ qla2x00_calc_iocbs_64(uint16_t dsds)
|
|
|
* Returns a pointer to the Continuation Type 0 IOCB packet.
|
|
|
*/
|
|
|
static inline cont_entry_t *
|
|
|
-qla2x00_prep_cont_type0_iocb(struct req_que *req, struct scsi_qla_host *vha)
|
|
|
+qla2x00_prep_cont_type0_iocb(struct scsi_qla_host *vha)
|
|
|
{
|
|
|
cont_entry_t *cont_pkt;
|
|
|
+ struct req_que *req = vha->req;
|
|
|
/* Adjust ring index. */
|
|
|
req->ring_index++;
|
|
|
if (req->ring_index == req->length) {
|
|
@@ -121,10 +122,11 @@ qla2x00_prep_cont_type0_iocb(struct req_que *req, struct scsi_qla_host *vha)
|
|
|
* Returns a pointer to the continuation type 1 IOCB packet.
|
|
|
*/
|
|
|
static inline cont_a64_entry_t *
|
|
|
-qla2x00_prep_cont_type1_iocb(struct req_que *req, scsi_qla_host_t *vha)
|
|
|
+qla2x00_prep_cont_type1_iocb(scsi_qla_host_t *vha)
|
|
|
{
|
|
|
cont_a64_entry_t *cont_pkt;
|
|
|
|
|
|
+ struct req_que *req = vha->req;
|
|
|
/* Adjust ring index. */
|
|
|
req->ring_index++;
|
|
|
if (req->ring_index == req->length) {
|
|
@@ -160,7 +162,6 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt,
|
|
|
struct scsi_cmnd *cmd;
|
|
|
struct scatterlist *sg;
|
|
|
int i;
|
|
|
- struct req_que *req;
|
|
|
|
|
|
cmd = sp->cmd;
|
|
|
|
|
@@ -175,8 +176,6 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt,
|
|
|
}
|
|
|
|
|
|
vha = sp->fcport->vha;
|
|
|
- req = sp->que;
|
|
|
-
|
|
|
cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp));
|
|
|
|
|
|
/* Three DSDs are available in the Command Type 2 IOCB */
|
|
@@ -193,7 +192,7 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt,
|
|
|
* Seven DSDs are available in the Continuation
|
|
|
* Type 0 IOCB.
|
|
|
*/
|
|
|
- cont_pkt = qla2x00_prep_cont_type0_iocb(req, vha);
|
|
|
+ cont_pkt = qla2x00_prep_cont_type0_iocb(vha);
|
|
|
cur_dsd = (uint32_t *)&cont_pkt->dseg_0_address;
|
|
|
avail_dsds = 7;
|
|
|
}
|
|
@@ -221,7 +220,6 @@ void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt,
|
|
|
struct scsi_cmnd *cmd;
|
|
|
struct scatterlist *sg;
|
|
|
int i;
|
|
|
- struct req_que *req;
|
|
|
|
|
|
cmd = sp->cmd;
|
|
|
|
|
@@ -236,8 +234,6 @@ void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt,
|
|
|
}
|
|
|
|
|
|
vha = sp->fcport->vha;
|
|
|
- req = sp->que;
|
|
|
-
|
|
|
cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp));
|
|
|
|
|
|
/* Two DSDs are available in the Command Type 3 IOCB */
|
|
@@ -255,7 +251,7 @@ void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt,
|
|
|
* Five DSDs are available in the Continuation
|
|
|
* Type 1 IOCB.
|
|
|
*/
|
|
|
- cont_pkt = qla2x00_prep_cont_type1_iocb(req, vha);
|
|
|
+ cont_pkt = qla2x00_prep_cont_type1_iocb(vha);
|
|
|
cur_dsd = (uint32_t *)cont_pkt->dseg_0_address;
|
|
|
avail_dsds = 5;
|
|
|
}
|
|
@@ -354,7 +350,6 @@ qla2x00_start_scsi(srb_t *sp)
|
|
|
/* Build command packet */
|
|
|
req->current_outstanding_cmd = handle;
|
|
|
req->outstanding_cmds[handle] = sp;
|
|
|
- sp->que = req;
|
|
|
sp->cmd->host_scribble = (unsigned char *)(unsigned long)handle;
|
|
|
req->cnt -= req_cnt;
|
|
|
|
|
@@ -655,7 +650,7 @@ qla24xx_build_scsi_iocbs(srb_t *sp, struct cmd_type_7 *cmd_pkt,
|
|
|
}
|
|
|
|
|
|
vha = sp->fcport->vha;
|
|
|
- req = sp->que;
|
|
|
+ req = vha->req;
|
|
|
|
|
|
/* Set transfer direction */
|
|
|
if (cmd->sc_data_direction == DMA_TO_DEVICE) {
|
|
@@ -686,7 +681,7 @@ qla24xx_build_scsi_iocbs(srb_t *sp, struct cmd_type_7 *cmd_pkt,
|
|
|
* Five DSDs are available in the Continuation
|
|
|
* Type 1 IOCB.
|
|
|
*/
|
|
|
- cont_pkt = qla2x00_prep_cont_type1_iocb(req, vha);
|
|
|
+ cont_pkt = qla2x00_prep_cont_type1_iocb(vha);
|
|
|
cur_dsd = (uint32_t *)cont_pkt->dseg_0_address;
|
|
|
avail_dsds = 5;
|
|
|
}
|
|
@@ -728,7 +723,6 @@ qla24xx_start_scsi(srb_t *sp)
|
|
|
ret = 0;
|
|
|
|
|
|
qla25xx_set_que(sp, &req, &rsp);
|
|
|
- sp->que = req;
|
|
|
|
|
|
/* So we know we haven't pci_map'ed anything yet */
|
|
|
tot_dsds = 0;
|