qla2x00t-32gbit, target: Do not use se_cmd.priv

se_cmd.priv is not available in older kernel versions. Hence do not use it.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8131 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Bart Van Assche
2019-04-02 04:11:02 +00:00
parent ef1b78ba49
commit 6d13e7783d
2 changed files with 22 additions and 22 deletions

View File

@@ -309,8 +309,8 @@ static const int qla_tgt_supported_dif_block_size[]= {
static inline void qla_tgt_set_cmd_prot_op(struct qla_tgt_cmd *cmd, uint8_t xmit_rsp)
{
struct scst_cmd *scst_cmd = (struct scst_cmd *) cmd->se_cmd.priv;
int dir = scst_cmd_get_data_direction(cmd->se_cmd.priv);
struct scst_cmd *scst_cmd = cmd->scst_cmd;
int dir = scst_cmd_get_data_direction(scst_cmd);
int action = scst_get_dif_action(
scst_get_tgt_dif_actions(scst_cmd->cmd_dif_actions));
@@ -547,10 +547,10 @@ static int sqa_qla2xxx_handle_cmd(scsi_qla_host_t *vha,
vha->host_no, vha->vp_idx, data_length, task_codes,
data_dir, bidi, cmd->unpacked_lun,
atio->u.isp24.fcp_cmnd.cdb[0],
atio->u.isp24.exchange_addr, cmd, cmd->se_cmd.priv);
atio->u.isp24.exchange_addr, cmd, cmd->scst_cmd);
cmd->se_cmd.priv = scst_rx_cmd(scst_sess,
cmd->scst_cmd = scst_rx_cmd(scst_sess,
(uint8_t *)&atio->u.isp24.fcp_cmnd.lun,
sizeof(atio->u.isp24.fcp_cmnd.lun),
atio->u.isp24.fcp_cmnd.cdb,
@@ -558,15 +558,15 @@ static int sqa_qla2xxx_handle_cmd(scsi_qla_host_t *vha,
(atio->u.isp24.fcp_cmnd.add_cdb_len *4),
SCST_ATOMIC);
if (cmd->se_cmd.priv == NULL) {
if (cmd->scst_cmd == NULL) {
PRINT_ERROR("sqatgt(%ld/%d): scst_rx_cmd function failed.",
vha->host_no, vha->vp_idx);
res = -EFAULT;
goto out;
}
scst_cmd_set_tag(cmd->se_cmd.priv, atio->u.isp24.exchange_addr);
scst_cmd_set_tgt_priv(cmd->se_cmd.priv, cmd);
scst_cmd_set_tag(cmd->scst_cmd, atio->u.isp24.exchange_addr);
scst_cmd_set_tgt_priv(cmd->scst_cmd, cmd);
if (atio->u.isp24.fcp_cmnd.rddata && atio->u.isp24.fcp_cmnd.wrdata)
dir = SCST_DATA_BIDI;
@@ -576,35 +576,34 @@ static int sqa_qla2xxx_handle_cmd(scsi_qla_host_t *vha,
dir = SCST_DATA_WRITE;
else
dir = SCST_DATA_NONE;
scst_cmd_set_expected(cmd->se_cmd.priv, dir, data_length);
scst_cmd_set_expected(cmd->scst_cmd, dir, data_length);
/* task_code fr arg list is based on TCM #define. */
switch (atio->u.isp24.fcp_cmnd.task_attr) {
case ATIO_SIMPLE_QUEUE:
scst_cmd_set_queue_type(cmd->se_cmd.priv,
SCST_CMD_QUEUE_SIMPLE);
scst_cmd_set_queue_type(cmd->scst_cmd, SCST_CMD_QUEUE_SIMPLE);
break;
case ATIO_HEAD_OF_QUEUE:
scst_cmd_set_queue_type(cmd->se_cmd.priv,
scst_cmd_set_queue_type(cmd->scst_cmd,
SCST_CMD_QUEUE_HEAD_OF_QUEUE);
break;
case ATIO_ORDERED_QUEUE:
scst_cmd_set_queue_type(cmd->se_cmd.priv,
scst_cmd_set_queue_type(cmd->scst_cmd,
SCST_CMD_QUEUE_ORDERED);
break;
case ATIO_ACA_QUEUE:
scst_cmd_set_queue_type(cmd->se_cmd.priv,
scst_cmd_set_queue_type(cmd->scst_cmd,
SCST_CMD_QUEUE_ACA);
break;
case ATIO_UNTAGGED:
scst_cmd_set_queue_type(cmd->se_cmd.priv,
scst_cmd_set_queue_type(cmd->scst_cmd,
SCST_CMD_QUEUE_UNTAGGED);
break;
default:
PRINT_ERROR("sqatgt(%ld/%d): unknown task code %x, use "
"ORDERED instead.", vha->host_no, vha->vp_idx,
atio->u.isp24.fcp_cmnd.task_attr);
scst_cmd_set_queue_type(cmd->se_cmd.priv,
scst_cmd_set_queue_type(cmd->scst_cmd,
SCST_CMD_QUEUE_ORDERED);
break;
}
@@ -612,10 +611,10 @@ static int sqa_qla2xxx_handle_cmd(scsi_qla_host_t *vha,
TRACE(TRACE_SCSI, "sqatgt(%ld/%d): START Command=%p tag=%d, "
"queue type=%x", vha->host_no, vha->vp_idx, cmd,
cmd->atio.u.isp24.exchange_addr,
scst_cmd_get_queue_type(cmd->se_cmd.priv));
scst_cmd_get_queue_type(cmd->scst_cmd));
/* we're being call by wq, so do direct */
scst_cmd_init_done(cmd->se_cmd.priv, SCST_CONTEXT_DIRECT);
scst_cmd_init_done(cmd->scst_cmd, SCST_CONTEXT_DIRECT);
out:
TRACE_EXIT_RES(res);
@@ -624,7 +623,7 @@ static int sqa_qla2xxx_handle_cmd(scsi_qla_host_t *vha,
static void sqa_qla2xxx_handle_data(struct qla_tgt_cmd *cmd)
{
struct scst_cmd *scst_cmd = (struct scst_cmd *)cmd->se_cmd.priv;
struct scst_cmd *scst_cmd = cmd->scst_cmd;
int rx_status;
unsigned long flags;
@@ -802,7 +801,7 @@ static int sqa_qla2xxx_handle_tmr(struct qla_tgt_mgmt_cmd *mcmd, u64 lun,
static void sqa_qla2xxx_free_cmd(struct qla_tgt_cmd *cmd)
{
struct scst_cmd *scst_cmd = cmd->se_cmd.priv;
struct scst_cmd *scst_cmd = cmd->scst_cmd;
TRACE_ENTRY();
@@ -1730,7 +1729,7 @@ static int sqa_xmit_response(struct scst_cmd *scst_cmd)
TRACE_DBG("cmd[%p] ulpcmd[%p] dif_actions=0x%x, cdb=0x%x, prot_sg[%p] "
"prot_sg_cnt[%x], prot_type[%x] prot_op[%x]",
cmd, cmd->se_cmd.priv, scst_cmd->cmd_dif_actions, scst_cmd->cdb_buf[0],
cmd, cmd->scst_cmd, scst_cmd->cmd_dif_actions, scst_cmd->cdb_buf[0],
cmd->prot_sg, cmd->prot_sg_cnt, cmd->se_cmd.prot_type,
cmd->se_cmd.prot_op);
@@ -1817,7 +1816,7 @@ static int sqa_rdy_to_xfer(struct scst_cmd *scst_cmd)
TRACE_DBG("%s: cmd[%p] ulpcmd[%p] dif_actions=0x%x, cdb=0x%x, "
"prot_sg_cnt[%x], prot_type[%x] prot_op[%x], bufflen[%x]",__func__,
cmd, cmd->se_cmd.priv,
cmd, cmd->scst_cmd,
scst_cmd->cmd_dif_actions, scst_cmd->cdb_buf[0],
cmd->prot_sg_cnt, cmd->se_cmd.prot_type, cmd->se_cmd.prot_op,
cmd->bufflen);
@@ -2342,7 +2341,7 @@ sqa_qla2xxx_chk_dif_tags(uint32_t tag)
static int
sqa_qla2xxx_dif_tags(struct qla_tgt_cmd *cmd, uint16_t *pfw_prot_opts)
{
struct scst_cmd *scst_cmd = (struct scst_cmd *)cmd->se_cmd.priv;
struct scst_cmd *scst_cmd = cmd->scst_cmd;
uint32_t t32=0;
t32 = scst_get_dif_checks(scst_cmd->cmd_dif_actions);

View File

@@ -899,6 +899,7 @@ struct qla_tgt_cmd {
uint8_t cmd_type;
uint8_t pad[7];
struct se_cmd se_cmd;
struct scst_cmd *scst_cmd;
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 12, 0)
/*
* Used if neither <linux/bitmap.h> nor <linux/percpu_ida.h> are