diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2009-01-05 14:18:10 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-01-07 16:51:20 -0500 |
commit | 444786d7fdd770f67e29a068ec8ee981d323f7a7 (patch) | |
tree | 48532938e4056e980c64c3a5679798b9818d50b2 /drivers/scsi/qla2xxx/qla_iocb.c | |
parent | d63ab53394f408f9e59f5b6ba0580f8c6ef2357a (diff) |
[SCSI] qla2xxx: Use proper request/response queues with MQ instantiations.
Original code would inadvertanly place I/Os on the default
request-queue. Also, correctly pass in the proper MSI-X vector
during response-queue initialization.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_iocb.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_iocb.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c index 5bedc9d05942..2258152b1f41 100644 --- a/drivers/scsi/qla2xxx/qla_iocb.c +++ b/drivers/scsi/qla2xxx/qla_iocb.c | |||
@@ -173,7 +173,7 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt, | |||
173 | return; | 173 | return; |
174 | } | 174 | } |
175 | 175 | ||
176 | vha = sp->vha; | 176 | vha = sp->fcport->vha; |
177 | req = sp->que; | 177 | req = sp->que; |
178 | 178 | ||
179 | cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp)); | 179 | cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp)); |
@@ -234,7 +234,7 @@ void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt, | |||
234 | return; | 234 | return; |
235 | } | 235 | } |
236 | 236 | ||
237 | vha = sp->vha; | 237 | vha = sp->fcport->vha; |
238 | req = sp->que; | 238 | req = sp->que; |
239 | 239 | ||
240 | cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp)); | 240 | cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(sp)); |
@@ -294,7 +294,7 @@ qla2x00_start_scsi(srb_t *sp) | |||
294 | 294 | ||
295 | /* Setup device pointers. */ | 295 | /* Setup device pointers. */ |
296 | ret = 0; | 296 | ret = 0; |
297 | vha = sp->vha; | 297 | vha = sp->fcport->vha; |
298 | ha = vha->hw; | 298 | ha = vha->hw; |
299 | reg = &ha->iobase->isp; | 299 | reg = &ha->iobase->isp; |
300 | cmd = sp->cmd; | 300 | cmd = sp->cmd; |
@@ -353,7 +353,6 @@ qla2x00_start_scsi(srb_t *sp) | |||
353 | /* Build command packet */ | 353 | /* Build command packet */ |
354 | req->current_outstanding_cmd = handle; | 354 | req->current_outstanding_cmd = handle; |
355 | req->outstanding_cmds[handle] = sp; | 355 | req->outstanding_cmds[handle] = sp; |
356 | sp->vha = vha; | ||
357 | sp->que = req; | 356 | sp->que = req; |
358 | sp->cmd->host_scribble = (unsigned char *)(unsigned long)handle; | 357 | sp->cmd->host_scribble = (unsigned char *)(unsigned long)handle; |
359 | req->cnt -= req_cnt; | 358 | req->cnt -= req_cnt; |
@@ -656,7 +655,7 @@ qla24xx_build_scsi_iocbs(srb_t *sp, struct cmd_type_7 *cmd_pkt, | |||
656 | return; | 655 | return; |
657 | } | 656 | } |
658 | 657 | ||
659 | vha = sp->vha; | 658 | vha = sp->fcport->vha; |
660 | req = sp->que; | 659 | req = sp->que; |
661 | 660 | ||
662 | /* Set transfer direction */ | 661 | /* Set transfer direction */ |
@@ -723,7 +722,7 @@ qla24xx_start_scsi(srb_t *sp) | |||
723 | struct req_que *req = NULL; | 722 | struct req_que *req = NULL; |
724 | struct rsp_que *rsp = NULL; | 723 | struct rsp_que *rsp = NULL; |
725 | struct scsi_cmnd *cmd = sp->cmd; | 724 | struct scsi_cmnd *cmd = sp->cmd; |
726 | struct scsi_qla_host *vha = sp->vha; | 725 | struct scsi_qla_host *vha = sp->fcport->vha; |
727 | struct qla_hw_data *ha = vha->hw; | 726 | struct qla_hw_data *ha = vha->hw; |
728 | uint16_t que_id; | 727 | uint16_t que_id; |
729 | 728 | ||
@@ -791,7 +790,6 @@ qla24xx_start_scsi(srb_t *sp) | |||
791 | /* Build command packet. */ | 790 | /* Build command packet. */ |
792 | req->current_outstanding_cmd = handle; | 791 | req->current_outstanding_cmd = handle; |
793 | req->outstanding_cmds[handle] = sp; | 792 | req->outstanding_cmds[handle] = sp; |
794 | sp->vha = vha; | ||
795 | sp->cmd->host_scribble = (unsigned char *)(unsigned long)handle; | 793 | sp->cmd->host_scribble = (unsigned char *)(unsigned long)handle; |
796 | req->cnt -= req_cnt; | 794 | req->cnt -= req_cnt; |
797 | 795 | ||