struct qla_hw_data *ha = base_vha->hw;
uint16_t options = 0;
int cnt;
+ struct req_que *req = ha->req_q_map[0];
ret = qla24xx_vport_create_req_sanity_check(fc_vport);
if (ret) {
qla24xx_vport_disable(fc_vport, disable);
- ret = 0;
- if (ql2xmaxqueues == 1 || ql2xmultique_tag || !ha->npiv_info)
+ if (ql2xmultique_tag) {
+ req = ha->req_q_map[1];
+ goto vport_queue;
+ } else if (ql2xmaxqueues == 1 || !ha->npiv_info)
goto vport_queue;
/* Create a request queue in QoS mode for the vport */
for (cnt = 0; cnt < ha->nvram_npiv_size; cnt++) {
if (memcmp(ha->npiv_info[cnt].port_name, vha->port_name, 8) == 0
&& memcmp(ha->npiv_info[cnt].node_name, vha->node_name,
- 8) == 0) {
+ 8) == 0) {
qos = ha->npiv_info[cnt].q_qos;
break;
}
qla_printk(KERN_WARNING, ha,
"Can't create request queue for vp_idx:%d\n",
vha->vp_idx);
- else
+ else {
DEBUG2(qla_printk(KERN_INFO, ha,
"Request Que:%d (QoS: %d) created for vp_idx:%d\n",
ret, qos, vha->vp_idx));
+ req = ha->req_q_map[ret];
+ }
}
vport_queue:
- vha->req = ha->req_q_map[ret];
+ vha->req = req;
return 0;
vport_create_failed_2:
struct rsp_que *rsp);
static void qla2x00_isp_cmd(struct scsi_qla_host *, struct req_que *);
-static void qla25xx_set_que(srb_t *, struct req_que **, struct rsp_que **);
+static void qla25xx_set_que(srb_t *, struct rsp_que **);
/**
* qla2x00_get_cmd_direction() - Determine control_flag data direction.
* @cmd: SCSI command
/* Setup device pointers. */
ret = 0;
- qla25xx_set_que(sp, &req, &rsp);
+ qla25xx_set_que(sp, &rsp);
+ req = vha->req;
/* So we know we haven't pci_map'ed anything yet */
tot_dsds = 0;
return QLA_FUNCTION_FAILED;
}
-static void qla25xx_set_que(srb_t *sp, struct req_que **req,
- struct rsp_que **rsp)
+static void qla25xx_set_que(srb_t *sp, struct rsp_que **rsp)
{
struct scsi_cmnd *cmd = sp->cmd;
- struct scsi_qla_host *vha = sp->fcport->vha;
struct qla_hw_data *ha = sp->fcport->vha->hw;
int affinity = cmd->request->cpu;
if (ql2xmultique_tag && affinity >= 0 &&
- affinity < ha->max_rsp_queues - 1) {
+ affinity < ha->max_rsp_queues - 1)
*rsp = ha->rsp_q_map[affinity + 1];
- *req = ha->req_q_map[1];
- } else {
- *req = vha->req;
+ else
*rsp = ha->rsp_q_map[0];
- }
}