[SCSI] qla2xxx: Implement FCP priority tagging for 82xx adapters.
This provides a capability to set a priority in the FCP packet. Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
5162cf0c4e
commit
a00f6296aa
|
@ -102,7 +102,7 @@ qla24xx_proc_fcp_prio_cfg_cmd(struct fc_bsg_job *bsg_job)
|
|||
|
||||
bsg_job->reply->reply_payload_rcv_len = 0;
|
||||
|
||||
if (!(IS_QLA24XX_TYPE(ha) || IS_QLA25XX(ha))) {
|
||||
if (!(IS_QLA24XX_TYPE(ha) || IS_QLA25XX(ha) || IS_QLA82XX(ha))) {
|
||||
ret = -EINVAL;
|
||||
goto exit_fcp_prio_cfg;
|
||||
}
|
||||
|
|
|
@ -5642,6 +5642,11 @@ qla24xx_update_fcport_fcp_prio(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|||
if (priority < 0)
|
||||
return QLA_FUNCTION_FAILED;
|
||||
|
||||
if (IS_QLA82XX(vha->hw)) {
|
||||
fcport->fcp_prio = priority & 0xf;
|
||||
return QLA_SUCCESS;
|
||||
}
|
||||
|
||||
ret = qla24xx_set_fcp_prio(vha, fcport->loop_id, priority, mb);
|
||||
if (ret == QLA_SUCCESS) {
|
||||
if (fcport->fcp_prio != priority)
|
||||
|
@ -5650,7 +5655,7 @@ qla24xx_update_fcport_fcp_prio(scsi_qla_host_t *vha, fc_port_t *fcport)
|
|||
"port_id=%02x%02x%02x.\n", priority,
|
||||
fcport->loop_id, fcport->d_id.b.domain,
|
||||
fcport->d_id.b.area, fcport->d_id.b.al_pa);
|
||||
fcport->fcp_prio = priority;
|
||||
fcport->fcp_prio = priority & 0xf;
|
||||
} else
|
||||
ql_dbg(ql_dbg_user, vha, 0x704f,
|
||||
"Unable to update FCP_CMND priority - ret=0x%x for "
|
||||
|
|
|
@ -2432,6 +2432,11 @@ sufficient_dsds:
|
|||
}
|
||||
}
|
||||
|
||||
/* Populate the FCP_PRIO. */
|
||||
if (ha->flags.fcp_prio_enabled)
|
||||
ctx->fcp_cmnd->task_attribute |=
|
||||
sp->fcport->fcp_prio << 3;
|
||||
|
||||
memcpy(ctx->fcp_cmnd->cdb, cmd->cmnd, cmd->cmd_len);
|
||||
|
||||
fcp_dl = (uint32_t *)(ctx->fcp_cmnd->cdb + 16 +
|
||||
|
@ -2501,6 +2506,10 @@ sufficient_dsds:
|
|||
}
|
||||
}
|
||||
|
||||
/* Populate the FCP_PRIO. */
|
||||
if (ha->flags.fcp_prio_enabled)
|
||||
cmd_pkt->task |= sp->fcport->fcp_prio << 3;
|
||||
|
||||
/* Load SCSI command packet. */
|
||||
memcpy(cmd_pkt->fcp_cdb, cmd->cmnd, cmd->cmd_len);
|
||||
host_to_fcp_swap(cmd_pkt->fcp_cdb, sizeof(cmd_pkt->fcp_cdb));
|
||||
|
|
Loading…
Reference in a new issue