Removed trailing whitespace.

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1125 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Bart Van Assche
2009-09-22 18:07:18 +00:00
parent a6b332d795
commit f582bf72d3
3 changed files with 145 additions and 145 deletions

View File

@@ -19,7 +19,7 @@ older kernels.
The original initiator driver was taken from the kernel 2.6.26.
See also "ToDo" file for list of known issues and unimplemented
See also "ToDo" file for list of known issues and unimplemented
features.
@@ -129,11 +129,11 @@ in/out in Makefile:
debugging. In this mode some CTIOs will be "broken" to force the
initiator to issue a retransmit request.
Credits
-------
Thanks to:
Thanks to:
* QLogic support for their invaluable help.

View File

@@ -7,12 +7,12 @@
* Copyright (C) 2006 - 2009 ID7 Ltd.
*
* QLogic 22xx/23xx/24xx/25xx FC target driver.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, version 2
* of the License.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -66,7 +66,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt);
static void q2t_async_event(uint16_t code, scsi_qla_host_t *ha,
uint16_t *mailbox);
static void q2x_ctio_completion(scsi_qla_host_t *ha, uint32_t handle);
static int q2t_host_action(scsi_qla_host_t *ha,
static int q2t_host_action(scsi_qla_host_t *ha,
qla2x_tgt_host_action_t action);
static void q2t_fc_port_added(scsi_qla_host_t *ha, fc_port_t *fcport);
static void q2t_fc_port_deleted(scsi_qla_host_t *ha, fc_port_t *fcport);
@@ -176,9 +176,9 @@ static inline void q2t_sess_put(struct q2t_sess *sess)
/* ha->hardware_lock supposed to be held on entry (to protect tgt->sess_list) */
static inline struct q2t_sess *q2t_find_sess_by_loop_id(struct q2t_tgt *tgt,
uint16_t lid)
uint16_t lid)
{
struct q2t_sess *sess;
struct q2t_sess *sess;
sBUG_ON(tgt == NULL);
list_for_each_entry(sess, &tgt->sess_list, sess_list_entry) {
if (lid == (sess->loop_id))
@@ -188,14 +188,14 @@ static inline struct q2t_sess *q2t_find_sess_by_loop_id(struct q2t_tgt *tgt,
}
/* ha->hardware_lock supposed to be held on entry (to protect tgt->sess_list) */
static inline struct q2t_sess *q2t_find_sess_by_s_id(struct q2t_tgt *tgt,
const uint8_t *s_id)
static inline struct q2t_sess *q2t_find_sess_by_s_id(struct q2t_tgt *tgt,
const uint8_t *s_id)
{
struct q2t_sess *sess;
struct q2t_sess *sess;
sBUG_ON(tgt == NULL);
list_for_each_entry(sess, &tgt->sess_list, sess_list_entry) {
if ((sess->s_id.b.al_pa == s_id[2]) &&
(sess->s_id.b.area == s_id[1]) &&
if ((sess->s_id.b.al_pa == s_id[2]) &&
(sess->s_id.b.area == s_id[1]) &&
(sess->s_id.b.domain == s_id[0]))
return sess;
}
@@ -203,14 +203,14 @@ static inline struct q2t_sess *q2t_find_sess_by_s_id(struct q2t_tgt *tgt,
}
/* ha->hardware_lock supposed to be held on entry (to protect tgt->sess_list) */
static inline struct q2t_sess *q2t_find_sess_by_s_id_le(struct q2t_tgt *tgt,
const uint8_t *s_id)
static inline struct q2t_sess *q2t_find_sess_by_s_id_le(struct q2t_tgt *tgt,
const uint8_t *s_id)
{
struct q2t_sess *sess;
struct q2t_sess *sess;
sBUG_ON(tgt == NULL);
list_for_each_entry(sess, &tgt->sess_list, sess_list_entry) {
if ((sess->s_id.b.al_pa == s_id[0]) &&
(sess->s_id.b.area == s_id[1]) &&
if ((sess->s_id.b.al_pa == s_id[0]) &&
(sess->s_id.b.area == s_id[1]) &&
(sess->s_id.b.domain == s_id[2]))
return sess;
}
@@ -239,7 +239,7 @@ static inline int q2t_issue_marker(scsi_qla_host_t *ha, int ha_locked)
return (QLA_SUCCESS);
}
/*
/*
* Registers with initiator driver (but target mode isn't enabled till
* it's turned on via sysfs)
*/
@@ -266,7 +266,7 @@ static int q2x_target_detect(struct scst_tgt_template *templ)
}
if (tgt_data.magic != QLA2X_INITIATOR_MAGIC) {
PRINT_ERROR("Wrong version of the initiator part: %d",
PRINT_ERROR("Wrong version of the initiator part: %d",
tgt_data.magic);
res = -EINVAL;
}
@@ -480,7 +480,7 @@ static void q2t_del_sess_timer_fn(unsigned long arg)
sess = list_entry(tgt->del_sess_list.next, typeof(*sess),
del_list_entry);
if (time_after_eq(jiffies, sess->expires)) {
/*
/*
* sess will be deleted from del_sess_list in
* q2t_unreg_sess()
*/
@@ -556,10 +556,10 @@ static struct q2t_sess *q2t_create_sess(scsi_qla_host_t *ha, fc_port_t *fcport,
if (sess == NULL) {
PRINT_ERROR("qla2x00tgt(%ld): session allocation failed, "
"all commands from port %02x:%02x:%02x:%02x:"
"%02x:%02x:%02x:%02x will be refused", ha->instance,
fcport->port_name[0], fcport->port_name[1],
fcport->port_name[2], fcport->port_name[3],
fcport->port_name[4], fcport->port_name[5],
"%02x:%02x:%02x:%02x will be refused", ha->instance,
fcport->port_name[0], fcport->port_name[1],
fcport->port_name[2], fcport->port_name[3],
fcport->port_name[4], fcport->port_name[5],
fcport->port_name[6], fcport->port_name[7]);
goto out;
}
@@ -577,24 +577,24 @@ static struct q2t_sess *q2t_create_sess(scsi_qla_host_t *ha, fc_port_t *fcport,
if (wwn_str == NULL) {
PRINT_ERROR("qla2x00tgt(%ld): Allocation of wwn_str failed. "
"All commands from port %02x:%02x:%02x:%02x:%02x:%02x:"
"%02x:%02x will be refused", ha->instance,
fcport->port_name[0], fcport->port_name[1],
fcport->port_name[2], fcport->port_name[3],
fcport->port_name[4], fcport->port_name[5],
"%02x:%02x will be refused", ha->instance,
fcport->port_name[0], fcport->port_name[1],
fcport->port_name[2], fcport->port_name[3],
fcport->port_name[4], fcport->port_name[5],
fcport->port_name[6], fcport->port_name[7]);
goto out_free_sess;
}
sprintf(wwn_str, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
fcport->port_name[0], fcport->port_name[1],
fcport->port_name[2], fcport->port_name[3],
fcport->port_name[4], fcport->port_name[5],
fcport->port_name[0], fcport->port_name[1],
fcport->port_name[2], fcport->port_name[3],
fcport->port_name[4], fcport->port_name[5],
fcport->port_name[6], fcport->port_name[7]);
/* Let's do the session creation async'ly */
sess->scst_sess = scst_register_session(tgt->scst_tgt, 1, wwn_str,
sess, q2t_alloc_session_done);
if (sess->scst_sess == NULL) {
PRINT_CRIT_ERROR("qla2x00tgt(%ld): scst_register_session() "
"failed for host %ld (wwn %s, loop_id %d), all "
@@ -780,7 +780,7 @@ static int q2t_target_release(struct scst_tgt *scst_tgt)
TRACE_ENTRY();
/*
/*
* Mutex needed to sync with q2t_fc_port_[added,deleted].
* Lock is needed, because we still can get an incoming packet.
*/
@@ -810,11 +810,11 @@ static int q2t_target_release(struct scst_tgt *scst_tgt)
wait_event(tgt->waitQ, test_tgt_sess_count(tgt));
/* Big hammer */
if (!ha->host_shutting_down)
if (!ha->host_shutting_down)
tgt_data.disable_tgt_mode(ha);
/* Wait for sessions to clear out (just in case) */
wait_event(tgt->waitQ, test_tgt_sess_count(tgt));
wait_event(tgt->waitQ, test_tgt_sess_count(tgt));
TRACE_MGMT_DBG("Waiting for %d IRQ commands to complete (tgt %p)",
tgt->irq_cmd_count, tgt);
@@ -849,7 +849,7 @@ static void q2x_modify_command_count(scsi_qla_host_t *ha, int cmd_count,
TRACE_ENTRY();
TRACE_DBG("Sending MODIFY_LUN (ha=%p, cmd=%d, imm=%d)",
TRACE_DBG("Sending MODIFY_LUN (ha=%p, cmd=%d, imm=%d)",
ha, cmd_count, imm_count);
/* Sending marker isn't necessary, since we called from ISR */
@@ -900,7 +900,7 @@ static void q2x_send_notify_ack(scsi_qla_host_t *ha, notify_entry_t *iocb,
uint16_t srr_flags, uint16_t srr_reject_code, uint8_t srr_explan)
{
nack_entry_t *ntfy;
TRACE_ENTRY();
TRACE_DBG("Sending NOTIFY_ACK (ha=%p)", ha);
@@ -945,7 +945,7 @@ static void q2x_send_notify_ack(scsi_qla_host_t *ha, notify_entry_t *iocb,
TRACE(TRACE_SCSI, "Sending Notify Ack Seq %#x -> I %#x St %#x RC %#x",
le16_to_cpu(iocb->seq_id), GET_TARGET_ID(ha, iocb),
le16_to_cpu(iocb->status), le16_to_cpu(ntfy->resp_code));
TRACE_BUFFER("Notify Ack packet data", ntfy, REQUEST_ENTRY_SIZE);
TRACE_BUFFER("Notify Ack packet data", ntfy, REQUEST_ENTRY_SIZE);
q2t_exec_queue(ha);
@@ -1018,7 +1018,7 @@ static void q24_send_abts_resp(scsi_qla_host_t *ha,
resp->payload.ba_acct.rx_id = abts->fcp_hdr_le.rx_id;
} else {
resp->fcp_hdr_le.r_ctl = R_CTL_BASIC_LINK_SERV | R_CTL_B_RJT;
resp->payload.ba_rjt.reason_code =
resp->payload.ba_rjt.reason_code =
BA_RJT_REASON_CODE_UNABLE_TO_PERFORM;
/* Other bytes are zero */
}
@@ -1114,7 +1114,7 @@ static void q24_handle_abts(scsi_qla_host_t *ha, abts24_recv_entry_t *abts)
TRACE(TRACE_MGMT_MINOR, "qla2x00tgt(%ld): task abort (s_id=%x:%x:%x, "
"tag=%d, param=%x)", ha->instance, abts->fcp_hdr_le.s_id[0],
abts->fcp_hdr_le.s_id[1], abts->fcp_hdr_le.s_id[2], tag,
abts->fcp_hdr_le.s_id[1], abts->fcp_hdr_le.s_id[2], tag,
le32_to_cpu(abts->fcp_hdr_le.parameter));
sess = q2t_find_sess_by_s_id_le(ha->tgt, abts->fcp_hdr_le.s_id);
@@ -1135,7 +1135,7 @@ static void q24_handle_abts(scsi_qla_host_t *ha, abts24_recv_entry_t *abts)
mcmd->sess = sess;
memcpy(&mcmd->orig_iocb.abts, abts, sizeof(mcmd->orig_iocb.abts));
rc = scst_rx_mgmt_fn_tag(sess->scst_sess, SCST_ABORT_TASK, tag,
rc = scst_rx_mgmt_fn_tag(sess->scst_sess, SCST_ABORT_TASK, tag,
SCST_ATOMIC, mcmd);
if (rc != 0) {
PRINT_ERROR("qla2x00tgt(%ld): scst_rx_mgmt_fn_tag() failed: %d",
@@ -1166,7 +1166,7 @@ static void q24_send_task_mgmt_ctio(scsi_qla_host_t *ha,
TRACE_ENTRY();
TRACE_DBG("Sending task mgmt CTIO7 (ha=%p, atio=%p, resp_code=%x",
TRACE_DBG("Sending task mgmt CTIO7 (ha=%p, atio=%p, resp_code=%x",
ha, atio, resp_code);
/* Send marker if required */
@@ -1211,7 +1211,7 @@ static void q24_send_notify_ack(scsi_qla_host_t *ha,
uint8_t srr_reject_code, uint8_t srr_explan)
{
nack24xx_entry_t *nack;
TRACE_ENTRY();
TRACE_DBG("Sending NOTIFY_ACK24 (ha=%p)", ha);
@@ -1234,7 +1234,7 @@ static void q24_send_notify_ack(scsi_qla_host_t *ha,
nack->entry_count = 1;
nack->nport_handle = iocb->nport_handle;
if (le16_to_cpu(iocb->status) == IMM_NTFY_ELS) {
nack->flags = iocb->flags &
nack->flags = iocb->flags &
__constant_cpu_to_le32(NOTIFY24XX_FLAGS_PUREX_IOCB);
}
nack->srr_rx_id = iocb->srr_rx_id;
@@ -1307,7 +1307,7 @@ static void q2t_task_mgmt_fn_done(struct scst_mgmt_cmd *scst_mcmd)
spin_lock_irqsave(&ha->hardware_lock, flags);
if (IS_FWI2_CAPABLE(ha)) {
if (mcmd->flags == Q24_MGMT_SEND_NACK) {
q24_send_notify_ack(ha,
q24_send_notify_ack(ha,
&mcmd->orig_iocb.notify_entry24, 0, 0, 0);
} else {
if (scst_mcmd->fn == SCST_ABORT_TASK)
@@ -1315,7 +1315,7 @@ static void q2t_task_mgmt_fn_done(struct scst_mgmt_cmd *scst_mcmd)
scst_mgmt_cmd_get_status(scst_mcmd),
false);
else
q24_send_task_mgmt_ctio(ha, mcmd,
q24_send_task_mgmt_ctio(ha, mcmd,
q2t_convert_to_fc_tm_status(
scst_mgmt_cmd_get_status(scst_mcmd)));
}
@@ -1357,19 +1357,19 @@ static int q2t_pci_map_calc_cnt(struct q2t_prm *prm)
prm->tgt->datasegs_per_cmd) /
prm->tgt->datasegs_per_cont;
if (((uint16_t)(prm->seg_cnt - prm->tgt->datasegs_per_cmd)) %
prm->tgt->datasegs_per_cont)
prm->tgt->datasegs_per_cont)
{
prm->req_cnt++;
}
}
out:
TRACE_DBG("seg_cnt=%d, req_cnt=%d, res=%d", prm->seg_cnt,
TRACE_DBG("seg_cnt=%d, req_cnt=%d, res=%d", prm->seg_cnt,
prm->req_cnt, res);
return res;
out_err:
PRINT_ERROR("qla2x00tgt(%ld): PCI mapping failed: sg_cnt=%d",
PRINT_ERROR("qla2x00tgt(%ld): PCI mapping failed: sg_cnt=%d",
prm->tgt->ha->instance, prm->cmd->sg_cnt);
res = -1;
goto out;
@@ -1444,13 +1444,13 @@ static inline uint32_t q2t_make_handle(scsi_qla_host_t *ha)
h = 1; /* 0 is Q2T_NULL_HANDLE */
}
if (h == ha->current_handle) {
TRACE(TRACE_OUT_OF_MEM,
TRACE(TRACE_OUT_OF_MEM,
"Ran out of empty cmd slots in ha %p", ha);
h = Q2T_NULL_HANDLE;
break;
}
} while ((h == Q2T_NULL_HANDLE) ||
(h == Q2T_SKIP_HANDLE) ||
(h == Q2T_SKIP_HANDLE) ||
(ha->cmds[h-1] != NULL));
if (h != Q2T_NULL_HANDLE)
@@ -1487,11 +1487,11 @@ static void q2x_build_ctio_pkt(struct q2t_prm *prm)
/* Set initiator ID */
h = GET_TARGET_ID(ha, &prm->cmd->atio.atio2x);
SET_TARGET_ID(ha, pkt->common.target, h);
pkt->common.rx_id = prm->cmd->atio.atio2x.rx_id;
pkt->common.relative_offset = cpu_to_le32(prm->cmd->offset);
TRACE(TRACE_DEBUG|TRACE_SCSI,
TRACE(TRACE_DEBUG|TRACE_SCSI,
"handle(scst_cmd) -> %08x, timeout %d L %#x -> I %#x E %#x",
pkt->common.handle, Q2T_TIMEOUT,
le16_to_cpu(prm->cmd->atio.atio2x.lun),
@@ -1564,7 +1564,7 @@ static void q2t_load_cont_data_segments(struct q2t_prm *prm)
cont_a64_entry_t *cont_pkt64 =
(cont_a64_entry_t *)q2t_get_req_pkt(prm->tgt->ha);
/*
/*
* Make sure that from cont_pkt64 none of
* 64-bit specific fields used for 32-bit
* addressing. Cast to (cont_entry_t *) for
@@ -1590,7 +1590,7 @@ static void q2t_load_cont_data_segments(struct q2t_prm *prm)
/* Load continuation entry data segments */
for (cnt = 0;
cnt < prm->tgt->datasegs_per_cont && prm->seg_cnt;
cnt++, prm->seg_cnt--)
cnt++, prm->seg_cnt--)
{
*dword_ptr++ =
cpu_to_le32(pci_dma_lo32
@@ -1656,7 +1656,7 @@ static void q2x_load_data_segments(struct q2t_prm *prm)
/* Load command entry data segments */
for (cnt = 0;
(cnt < prm->tgt->datasegs_per_cmd) && prm->seg_cnt;
cnt++, prm->seg_cnt--)
cnt++, prm->seg_cnt--)
{
*dword_ptr++ =
cpu_to_le32(pci_dma_lo32(sg_dma_address(prm->sg)));
@@ -1721,7 +1721,7 @@ static void q24_load_data_segments(struct q2t_prm *prm)
/* Load command entry data segments */
for (cnt = 0;
(cnt < prm->tgt->datasegs_per_cmd) && prm->seg_cnt;
cnt++, prm->seg_cnt--)
cnt++, prm->seg_cnt--)
{
*dword_ptr++ =
cpu_to_le32(pci_dma_lo32(sg_dma_address(prm->sg)));
@@ -1850,7 +1850,7 @@ static int q2t_pre_xmit_response(struct q2t_cmd *cmd,
}
}
/*
/*
* If Q2T_XMIT_DATA is not set, add_status_pkt will be ignored
* in *xmit_response() below
*/
@@ -1864,7 +1864,7 @@ static int q2t_pre_xmit_response(struct q2t_cmd *cmd,
}
}
TRACE_DBG("req_cnt=%d, full_req_cnt=%d, add_status_pkt=%d",
TRACE_DBG("req_cnt=%d, full_req_cnt=%d, add_status_pkt=%d",
prm->req_cnt, full_req_cnt, prm->add_status_pkt);
/* Acquire ring specific lock */
@@ -1872,7 +1872,7 @@ static int q2t_pre_xmit_response(struct q2t_cmd *cmd,
/* Does F/W have an IOCBs for this request */
res = q2t_check_reserve_free_req(ha, full_req_cnt);
if (unlikely(res != SCST_TGT_RES_SUCCESS) &&
if (unlikely(res != SCST_TGT_RES_SUCCESS) &&
(xmit_type & Q2T_XMIT_DATA))
goto out_unlock_free_unmap;
@@ -1907,7 +1907,7 @@ static void q2x_init_ctio_ret_entry(ctio_ret_entry_t *ctio_m1,
{
TRACE_ENTRY();
prm->sense_buffer_len = min((uint32_t)prm->sense_buffer_len,
prm->sense_buffer_len = min((uint32_t)prm->sense_buffer_len,
(uint32_t)sizeof(ctio_m1->sense_data));
ctio_m1->flags = __constant_cpu_to_le16(OF_SSTS | OF_FAST_POST |
@@ -1989,7 +1989,7 @@ static int __q2x_xmit_response(struct q2t_cmd *cmd, int xmit_type)
* amount of request entries to not drop HW lock in
* req_pkt().
*/
ctio_ret_entry_t *ctio_m1 =
ctio_ret_entry_t *ctio_m1 =
(ctio_ret_entry_t *)q2t_get_req_pkt(ha);
TRACE_DBG("%s", "Building additional status packet");
@@ -2055,7 +2055,7 @@ static void q2t_check_srr_debug(struct q2t_cmd *cmd, int *xmit_type)
if (q2t_has_data(cmd) && ((scst_random() % 100) == 70)) {
unsigned int offset = scst_random() % cmd->bufflen;
TRACE_MGMT_DBG("Cutting cmd %p (tag %d) buffer head "
"to offset %d (cmd->bufflen %d)", cmd, cmd->tag,
offset, cmd->bufflen);
@@ -2112,7 +2112,7 @@ static void q24_init_ctio_ret_entry(ctio7_status0_entry_t *ctio,
TRACE_ENTRY();
prm->sense_buffer_len = min((uint32_t)prm->sense_buffer_len,
prm->sense_buffer_len = min((uint32_t)prm->sense_buffer_len,
(uint32_t)sizeof(ctio1->sense_data));
ctio->flags |= __constant_cpu_to_le16(CTIO7_FLAGS_SEND_STATUS);
if (q2t_need_explicit_conf(prm->tgt->ha, prm->cmd, 0)) {
@@ -2135,7 +2135,7 @@ static void q24_init_ctio_ret_entry(ctio7_status0_entry_t *ctio,
ctio1->scsi_status |= __constant_cpu_to_le16(SS_SENSE_LEN_VALID);
ctio1->sense_length = cpu_to_le16(prm->sense_buffer_len);
for(i = 0; i < prm->sense_buffer_len/4; i++)
((uint32_t *)ctio1->sense_data)[i] =
((uint32_t *)ctio1->sense_data)[i] =
cpu_to_be32(((uint32_t *)prm->sense_buffer)[i]);
#if 0
if (unlikely((prm->sense_buffer_len % 4) != 0)) {
@@ -2215,7 +2215,7 @@ static int __q24_xmit_response(struct q2t_cmd *cmd, int xmit_type)
* amount of request entries to not drop HW lock in
* req_pkt().
*/
ctio7_status1_entry_t *ctio =
ctio7_status1_entry_t *ctio =
(ctio7_status1_entry_t *)q2t_get_req_pkt(ha);
TRACE_DBG("%s", "Building additional status packet");
@@ -2595,7 +2595,7 @@ static int q2t_prepare_srr_ctio(scsi_qla_host_t *ha, struct q2t_cmd *cmd,
/* IRQ is already OFF */
spin_lock(&tgt->srr_lock);
sc->srr_id = tgt->ctio_srr_id;
list_add_tail(&sc->srr_list_entry,
list_add_tail(&sc->srr_list_entry,
&tgt->srr_ctio_list);
TRACE_MGMT_DBG("CTIO SRR %p added (id %d)",
sc, sc->srr_id);
@@ -2661,7 +2661,7 @@ static int q2t_term_ctio_exchange(scsi_qla_host_t *ha, void *ctio,
if (IS_FWI2_CAPABLE(ha)) {
if (ctio != NULL) {
ctio7_fw_entry_t *c = (ctio7_fw_entry_t *)ctio;
term = !(c->flags &
term = !(c->flags &
__constant_cpu_to_le16(OF_TERM_EXCH));
} else
term = 1;
@@ -2675,7 +2675,7 @@ static int q2t_term_ctio_exchange(scsi_qla_host_t *ha, void *ctio,
#if 0 /* seems, it isn't needed */
if (ctio != NULL) {
ctio_common_entry_t *c = (ctio_common_entry_t *)ctio;
term = !(c->flags &
term = !(c->flags &
__constant_cpu_to_le16(
CTIO7_FLAGS_TERMINATE));
} else
@@ -2724,7 +2724,7 @@ static struct q2t_cmd *q2t_ctio_to_cmd(scsi_qla_host_t *ha, uint32_t handle,
cmd = q2t_get_cmd(ha, handle);
if (unlikely(cmd == NULL)) {
PRINT_WARNING("qla2x00tgt(%ld): Suspicious: unable to "
"find the command with handle %x",
"find the command with handle %x",
ha->instance, handle);
goto out;
}
@@ -2750,7 +2750,7 @@ static struct q2t_cmd *q2t_ctio_to_cmd(scsi_qla_host_t *ha, uint32_t handle,
if (sess == NULL) {
PRINT_WARNING("qla2x00tgt(%ld): Suspicious: "
"ctio_completion for non-existing session "
"(loop_id %d, tag %d)",
"(loop_id %d, tag %d)",
ha->instance, loop_id, tag);
goto out;
}
@@ -2758,7 +2758,7 @@ static struct q2t_cmd *q2t_ctio_to_cmd(scsi_qla_host_t *ha, uint32_t handle,
scst_cmd = scst_find_cmd_by_tag(sess->scst_sess, tag);
if (scst_cmd == NULL) {
PRINT_WARNING("qla2x00tgt(%ld): Suspicious: unable to "
"find the command with tag %d (loop_id %d)",
"find the command with tag %d (loop_id %d)",
ha->instance, tag, loop_id);
goto out;
}
@@ -2789,7 +2789,7 @@ static void q2t_do_ctio_completion(scsi_qla_host_t *ha, uint32_t handle,
context = SCST_CONTEXT_TASKLET;
#endif
TRACE(TRACE_DEBUG|TRACE_SCSI, "handle(ctio %p status %#x) <- %08x",
TRACE(TRACE_DEBUG|TRACE_SCSI, "handle(ctio %p status %#x) <- %08x",
ctio, status, handle);
if (handle & CTIO_INTERMEDIATE_HANDLE_MARK) {
@@ -3003,7 +3003,7 @@ static int q24_do_send_cmd_to_scst(struct q2t_cmd *cmd)
TRACE_ENTRY();
cmd->scst_cmd = scst_rx_cmd(sess->scst_sess,
cmd->scst_cmd = scst_rx_cmd(sess->scst_sess,
(uint8_t *)&atio->fcp_cmnd.lun, sizeof(atio->fcp_cmnd.lun),
atio->fcp_cmnd.cdb, Q2T_MAX_CDB_LEN, SCST_ATOMIC);
@@ -3023,7 +3023,7 @@ static int q24_do_send_cmd_to_scst(struct q2t_cmd *cmd)
dir = SCST_DATA_WRITE;
else
dir = SCST_DATA_NONE;
scst_cmd_set_expected(cmd->scst_cmd, dir,
scst_cmd_set_expected(cmd->scst_cmd, dir,
be32_to_cpu(atio->fcp_cmnd.data_length));
switch(atio->fcp_cmnd.task_attr) {
@@ -3120,13 +3120,13 @@ static int q2t_send_cmd_to_scst(scsi_qla_host_t *ha, atio_t *atio)
if (unlikely(sess == NULL)) {
TRACE_MGMT_DBG("qla2x00tgt(%ld): Unable to find "
"wwn login (s_id %x:%x:%x), trying to create "
"it manually", ha->instance,
"it manually", ha->instance,
a->fcp_hdr.s_id[0], a->fcp_hdr.s_id[1],
a->fcp_hdr.s_id[2]);
goto out_sched;
}
} else {
sess = q2t_find_sess_by_loop_id(tgt,
sess = q2t_find_sess_by_loop_id(tgt,
GET_TARGET_ID(ha, (atio_entry_t *)atio));
if (unlikely(sess == NULL)) {
TRACE_MGMT_DBG("qla2x00tgt(%ld): Unable to find "
@@ -3199,7 +3199,7 @@ static int q2t_issue_task_mgmt(struct q2t_sess *sess, uint8_t *lun,
mcmd->sess = sess;
if (iocb) {
memcpy(&mcmd->orig_iocb.notify_entry, iocb,
memcpy(&mcmd->orig_iocb.notify_entry, iocb,
sizeof(mcmd->orig_iocb.notify_entry));
}
mcmd->flags = flags;
@@ -3356,7 +3356,7 @@ static int q2t_abort_task(scsi_qla_host_t *ha, notify_entry_t *iocb)
res = -EFAULT;
goto out;
}
mcmd = mempool_alloc(q2t_mgmt_cmd_mempool, GFP_ATOMIC);
if (mcmd == NULL) {
PRINT_ERROR("%s: Allocation of ABORT cmd failed", __func__);
@@ -3366,10 +3366,10 @@ static int q2t_abort_task(scsi_qla_host_t *ha, notify_entry_t *iocb)
memset(mcmd, 0, sizeof(*mcmd));
mcmd->sess = sess;
memcpy(&mcmd->orig_iocb.notify_entry, iocb,
memcpy(&mcmd->orig_iocb.notify_entry, iocb,
sizeof(mcmd->orig_iocb.notify_entry));
rc = scst_rx_mgmt_fn_tag(sess->scst_sess, SCST_ABORT_TASK, tag,
rc = scst_rx_mgmt_fn_tag(sess->scst_sess, SCST_ABORT_TASK, tag,
SCST_ATOMIC, mcmd);
if (rc != 0) {
PRINT_ERROR("qla2x00tgt(%ld): scst_rx_mgmt_fn_tag() failed: %d",
@@ -3459,11 +3459,11 @@ static int q2t_cut_cmd_data_head(struct q2t_cmd *cmd, unsigned int offset)
first_page_offs = offset - sg_offs;
first_page = 0;
} else {
int sec_page_offs = sg_offs +
int sec_page_offs = sg_offs +
(PAGE_SIZE - cmd->sg[i].offset);
first_page_offs = sec_page_offs % PAGE_SIZE;
first_page = 1 +
((offset - sec_page_offs) >>
first_page = 1 +
((offset - sec_page_offs) >>
PAGE_SHIFT);
}
}
@@ -3506,7 +3506,7 @@ static int q2t_cut_cmd_data_head(struct q2t_cmd *cmd, unsigned int offset)
sg[cur_dst].length, bufflen);
cur_dst++;
fpgs = (cmd->sg[cur_src].length >> PAGE_SHIFT) +
fpgs = (cmd->sg[cur_src].length >> PAGE_SHIFT) +
((cmd->sg[cur_src].length & ~PAGE_MASK) != 0);
first_page++;
if (fpgs > first_page) {
@@ -3560,7 +3560,7 @@ static inline int q2t_srr_adjust_data(struct q2t_cmd *cmd,
TRACE_MGMT_DBG("srr_rel_offs=%d, rel_offs=%d", srr_rel_offs, rel_offs);
*xmit_type = Q2T_XMIT_ALL;
if (rel_offs < 0) {
PRINT_ERROR("qla2x00tgt(%ld): SRR rel_offs (%d) "
"< 0", cmd->tgt->ha->instance, rel_offs);
@@ -3880,7 +3880,7 @@ static void q2t_prepare_srr_imm(scsi_qla_host_t *ha, void *iocb)
struct srr_ctio *sctio;
tgt->imm_srr_id++;
TRACE(TRACE_MGMT_MINOR, "qla2x00tgt(%ld): IMM NTFY SRR "
"received", ha->instance);
@@ -3892,7 +3892,7 @@ static void q2t_prepare_srr_imm(scsi_qla_host_t *ha, void *iocb)
/* IRQ is already OFF */
spin_lock(&tgt->srr_lock);
imm->srr_id = tgt->imm_srr_id;
list_add_tail(&imm->srr_list_entry,
list_add_tail(&imm->srr_list_entry,
&tgt->srr_imm_list);
TRACE_MGMT_DBG("IMM NTFY SRR %p added (id %d, ui %x)", imm,
imm->srr_id, iocb24->srr_ui);
@@ -3986,7 +3986,7 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
TRACE_BUFF_FLAG(TRACE_BUFF, "IMMED Notify Coming Up",
iocb, sizeof(*iocb2x));
switch (status) {
case IMM_NTFY_LIP_RESET:
{
@@ -3995,7 +3995,7 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
le16_to_cpu(iocb24->nport_handle),
iocb24->status_subcode);
} else {
TRACE(TRACE_MGMT, "LIP reset (I %#x)",
TRACE(TRACE_MGMT, "LIP reset (I %#x)",
GET_TARGET_ID(ha, iocb2x));
/* set the Clear LIP reset event flag */
add_flags |= NOTIFY_ACK_CLEAR_LIP_RESET;
@@ -4017,7 +4017,7 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
memcpy(&tgt->link_reinit_iocb, iocb24, sizeof(*iocb24));
tgt->link_reinit_iocb_pending = 1;
/*
* QLogic requires to wait after LINK REINIT for possible
* QLogic requires to wait after LINK REINIT for possible
* PDISC or ADISC ELS commands
*/
send_notify_ack = 0;
@@ -4025,7 +4025,7 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
}
case IMM_NTFY_PORT_LOGOUT:
TRACE(TRACE_MGMT, "Port logout (S %08x -> L %#x)",
TRACE(TRACE_MGMT, "Port logout (S %08x -> L %#x)",
le16_to_cpu(iocb2x->seq_id), le16_to_cpu(iocb2x->lun));
tgt_data.mark_all_devices_lost(ha, 1);
if (q2t_reset(ha, iocb, Q2T_NEXUS_LOSS_SESS) == 0)
@@ -4065,7 +4065,7 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
break;
case IMM_NTFY_ABORT_TASK:
TRACE(TRACE_MGMT_MINOR, "Abort Task (S %08x I %#x -> L %#x)",
TRACE(TRACE_MGMT_MINOR, "Abort Task (S %08x I %#x -> L %#x)",
le16_to_cpu(iocb2x->seq_id), GET_TARGET_ID(ha, iocb2x),
le16_to_cpu(iocb2x->lun));
if (q2t_abort_task(ha, iocb2x) == 0)
@@ -4102,7 +4102,7 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
if (send_notify_ack) {
if (IS_FWI2_CAPABLE(ha))
q24_send_notify_ack(ha, iocb24, 0, 0, 0);
else
else
q2x_send_notify_ack(ha, iocb2x, add_flags, 0, 0, 0,
0, 0);
}
@@ -4144,7 +4144,7 @@ static void q2x_send_busy(scsi_qla_host_t *ha, atio_entry_t *atio)
ctio->flags = __constant_cpu_to_le16(OF_SSTS | OF_FAST_POST |
OF_NO_DATA | OF_SS_MODE_1);
ctio->flags |= __constant_cpu_to_le16(OF_INC_RC);
/*
/*
* CTIO from fw w/o scst_cmd doesn't provide enough info to retry it,
* if the explicit conformation is used.
*/
@@ -4196,7 +4196,7 @@ static void q24_send_busy(scsi_qla_host_t *ha, atio7_entry_t *atio,
ctio->flags = (atio->attr << 9) | __constant_cpu_to_le16(
CTIO7_FLAGS_STATUS_MODE_1 | CTIO7_FLAGS_SEND_STATUS |
CTIO7_FLAGS_DONT_RET_CTIO);
/*
/*
* CTIO from fw w/o scst_cmd doesn't provide enough info to retry it,
* if the explicit conformation is used.
*/
@@ -4241,7 +4241,7 @@ static void q24_atio_pkt(scsi_qla_host_t *ha, atio7_entry_t *atio)
switch (atio->entry_type) {
case ATIO_TYPE7:
if (unlikely(atio->entry_count > 1) ||
if (unlikely(atio->entry_count > 1) ||
unlikely(atio->fcp_cmnd.add_cdb_len != 0)) {
PRINT_ERROR("qla2x00tgt(%ld): Multi entry ATIO7 IOCBs "
"(%d), ie with CDBs>16 bytes (%d), are not "
@@ -4251,8 +4251,8 @@ static void q24_atio_pkt(scsi_qla_host_t *ha, atio7_entry_t *atio)
}
TRACE_DBG("ATIO_TYPE7 instance %ld "
"lun %Lx read/write %d/%d data_length %04x "
"s_id %x:%x:%x",
ha->instance, atio->fcp_cmnd.lun,
"s_id %x:%x:%x",
ha->instance, atio->fcp_cmnd.lun,
atio->fcp_cmnd.rddata, atio->fcp_cmnd.wrdata,
be32_to_cpu(atio->fcp_cmnd.data_length),
atio->fcp_hdr.s_id[0], atio->fcp_hdr.s_id[1],
@@ -4261,7 +4261,7 @@ static void q24_atio_pkt(scsi_qla_host_t *ha, atio7_entry_t *atio)
REQUEST_ENTRY_SIZE);
PRINT_BUFF_FLAG(TRACE_SCSI, "FCP CDB", atio->fcp_cmnd.cdb,
sizeof(atio->fcp_cmnd.cdb));
if (unlikely(atio->exchange_addr ==
if (unlikely(atio->exchange_addr ==
ATIO_EXCHANGE_ADDRESS_UNKNOWN)) {
TRACE(TRACE_OUT_OF_MEM, "qla2x00tgt(%ld): ATIO_TYPE7 "
"received with UNKNOWN exchange address, "
@@ -4282,7 +4282,7 @@ static void q24_atio_pkt(scsi_qla_host_t *ha, atio7_entry_t *atio)
#endif
} else {
PRINT_INFO("qla2x00tgt(%ld): Unable to send "
"command to SCST, sending BUSY status",
"command to SCST, sending BUSY status",
ha->instance);
q24_send_busy(ha, atio, SAM_STAT_BUSY);
}
@@ -4323,7 +4323,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
struct q2t_tgt *tgt = ha->tgt;
TRACE_ENTRY();
if (unlikely(tgt == NULL)) {
PRINT_ERROR("Response pkt %x received, but no tgt (ha %p)",
pkt->entry_type, ha);
@@ -4376,17 +4376,17 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
atio = (atio_entry_t *)pkt;
TRACE_DBG("ACCEPT_TGT_IO instance %ld status %04x "
"lun %04x read/write %d data_length %04x "
"target_id %02x rx_id %04x ",
"target_id %02x rx_id %04x ",
ha->instance, le16_to_cpu(atio->status),
le16_to_cpu(atio->lun),
atio->execution_codes,
atio->execution_codes,
le32_to_cpu(atio->data_length),
GET_TARGET_ID(ha, atio), atio->rx_id);
TRACE_BUFFER("Incoming ATIO packet data", atio,
REQUEST_ENTRY_SIZE);
if (atio->status != __constant_cpu_to_le16(ATIO_CDB_VALID)) {
PRINT_ERROR("qla2x00tgt(%ld): ATIO with error "
"status %x received", ha->instance,
"status %x received", ha->instance,
le16_to_cpu(atio->status));
break;
}
@@ -4410,7 +4410,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
}
}
break;
case CONTINUE_TGT_IO_TYPE:
{
ctio_common_entry_t *entry = (ctio_common_entry_t *)pkt;
@@ -4422,19 +4422,19 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
entry);
break;
}
case CTIO_A64_TYPE:
{
ctio_common_entry_t *entry = (ctio_common_entry_t *)pkt;
TRACE_DBG("CTIO_A64: instance %ld", ha->instance);
TRACE_BUFFER("Incoming CTIO_A64 packet data", entry,
REQUEST_ENTRY_SIZE);
q2t_do_ctio_completion(ha, entry->handle,
q2t_do_ctio_completion(ha, entry->handle,
le16_to_cpu(entry->status)|(pkt->entry_status << 16),
entry);
break;
}
case IMMED_NOTIFY_TYPE:
TRACE_DBG("%s", "IMMED_NOTIFY");
q2t_handle_imm_notify(ha, (notify_entry_t *)pkt);
@@ -4443,7 +4443,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
case NOTIFY_ACK_TYPE:
if (tgt->notify_ack_expected > 0) {
nack_entry_t *entry = (nack_entry_t *)pkt;
TRACE_DBG("NOTIFY_ACK seq %08x status %x",
TRACE_DBG("NOTIFY_ACK seq %08x status %x",
le16_to_cpu(entry->seq_id),
le16_to_cpu(entry->status));
TRACE_BUFFER("Incoming NOTIFY_ACK packet data", pkt,
@@ -4451,7 +4451,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
tgt->notify_ack_expected--;
if (entry->status != __constant_cpu_to_le16(NOTIFY_ACK_SUCCESS)) {
PRINT_ERROR("qla2x00tgt(%ld): NOTIFY_ACK "
"failed %x", ha->instance,
"failed %x", ha->instance,
le16_to_cpu(entry->status));
}
} else {
@@ -4471,7 +4471,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
if (tgt->abts_resp_expected > 0) {
abts24_resp_fw_entry_t *entry =
(abts24_resp_fw_entry_t *)pkt;
TRACE_DBG("ABTS_RESP_24XX: compl_status %x",
TRACE_DBG("ABTS_RESP_24XX: compl_status %x",
entry->compl_status);
TRACE_BUFF_FLAG(TRACE_BUFF, "Incoming ABTS_RESP "
"packet data", pkt, REQUEST_ENTRY_SIZE);
@@ -4494,7 +4494,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
q24_retry_term_exchange(ha, entry);
} else
PRINT_ERROR("qla2x00tgt(%ld): ABTS_RESP_24XX "
"failed %x (subcode %x:%x)", ha->instance,
"failed %x (subcode %x:%x)", ha->instance,
entry->compl_status, entry->error_subcode1,
entry->error_subcode2);
}
@@ -4504,23 +4504,23 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
}
break;
case MODIFY_LUN_TYPE:
case MODIFY_LUN_TYPE:
if (tgt->modify_lun_expected > 0) {
modify_lun_entry_t *entry = (modify_lun_entry_t *)pkt;
TRACE_DBG("MODIFY_LUN %x, imm %c%d, cmd %c%d",
TRACE_DBG("MODIFY_LUN %x, imm %c%d, cmd %c%d",
entry->status,
(entry->operators & MODIFY_LUN_IMM_ADD) ?'+'
:(entry->operators & MODIFY_LUN_IMM_SUB) ?'-'
:' ',
entry->immed_notify_count,
(entry->operators & MODIFY_LUN_CMD_ADD) ?'+'
(entry->operators & MODIFY_LUN_IMM_ADD) ?'+'
:(entry->operators & MODIFY_LUN_IMM_SUB) ?'-'
:' ',
entry->immed_notify_count,
(entry->operators & MODIFY_LUN_CMD_ADD) ?'+'
:(entry->operators & MODIFY_LUN_CMD_SUB) ?'-'
:' ',
:' ',
entry->command_count);
tgt->modify_lun_expected--;
if (entry->status != MODIFY_LUN_SUCCESS) {
PRINT_ERROR("qla2x00tgt(%ld): MODIFY_LUN "
"failed %x", ha->instance,
"failed %x", ha->instance,
entry->status);
}
} else {
@@ -4532,7 +4532,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
case ENABLE_LUN_TYPE:
{
elun_entry_t *entry = (elun_entry_t *)pkt;
TRACE_DBG("ENABLE_LUN %x imm %u cmd %u ",
TRACE_DBG("ENABLE_LUN %x imm %u cmd %u ",
entry->status, entry->immed_notify_count,
entry->command_count);
if (entry->status == ENABLE_LUN_ALREADY_ENABLED) {
@@ -4544,7 +4544,7 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
"error: %#x", entry->status);
entry->status = ENABLE_LUN_SUCCESS;
} else if (entry->status != ENABLE_LUN_SUCCESS) {
PRINT_ERROR("qla2x00tgt(%ld): ENABLE_LUN "
PRINT_ERROR("qla2x00tgt(%ld): ENABLE_LUN "
"failed %x", ha->instance, entry->status);
qla_clear_tgt_mode(ha);
} /* else success */
@@ -4656,9 +4656,9 @@ static int q2t_get_target_name(scsi_qla_host_t *ha, char **wwn)
}
sprintf(name, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
ha->port_name[0], ha->port_name[1],
ha->port_name[2], ha->port_name[3],
ha->port_name[4], ha->port_name[5],
ha->port_name[0], ha->port_name[1],
ha->port_name[2], ha->port_name[3],
ha->port_name[4], ha->port_name[5],
ha->port_name[6], ha->port_name[7]);
*wwn = name;
@@ -4693,13 +4693,13 @@ static int q24_get_loop_id(scsi_qla_host_t *ha, atio7_entry_t *atio7,
res = -1;
goto out_free_id_list;
}
id_iter = (char *)gid_list;
res = -1;
for (i = 0; i < entries; i++) {
struct gid_list_info *gid = (struct gid_list_info *)id_iter;
if ((gid->al_pa == atio7->fcp_hdr.s_id[2]) &&
(gid->area == atio7->fcp_hdr.s_id[1]) &&
if ((gid->al_pa == atio7->fcp_hdr.s_id[2]) &&
(gid->area == atio7->fcp_hdr.s_id[1]) &&
(gid->domain == atio7->fcp_hdr.s_id[0])) {
*loop_id = le16_to_cpu(gid->loop_id);
res = 0;
@@ -4790,7 +4790,7 @@ static int q2t_exec_sess_work(struct q2t_tgt *tgt,
atio7_entry_t *a = (atio7_entry_t *)atio;
sess = q2t_find_sess_by_s_id(tgt, a->fcp_hdr.s_id);
} else
sess = q2t_find_sess_by_loop_id(tgt,
sess = q2t_find_sess_by_loop_id(tgt,
GET_TARGET_ID(ha, (atio_entry_t *)atio));
if (sess != NULL) {
@@ -4812,7 +4812,7 @@ send:
TRACE_MGMT_DBG("Sending work cmd %p to SCST", cmd);
res = q2t_do_send_cmd_to_scst(ha, cmd, sess);
} else {
/*
/*
* Cmd might be already aborted behind us, so be safe and
* abort it. It was not sent to SCST yet, so pass NULL as
* the second argument.
@@ -4949,7 +4949,7 @@ out_unlock:
}
/* No lock held on entry, process context */
static int q2t_host_action(scsi_qla_host_t *ha,
static int q2t_host_action(scsi_qla_host_t *ha,
qla2x_tgt_host_action_t action)
{
struct q2t_tgt *tgt = NULL;
@@ -4989,7 +4989,7 @@ static int q2t_host_action(scsi_qla_host_t *ha,
res = -ENOMEM;
break;
}
tgt->ha = ha;
init_waitqueue_head(&tgt->waitQ);
INIT_LIST_HEAD(&tgt->sess_list);
@@ -5028,7 +5028,7 @@ static int q2t_host_action(scsi_qla_host_t *ha,
if (!tgt->scst_tgt) {
PRINT_ERROR("qla2x00tgt(%ld): scst_register() "
"failed for host %ld(%p)", ha->instance,
"failed for host %ld(%p)", ha->instance,
ha->host_no, ha);
kfree(tgt);
res = -ENOMEM;
@@ -5040,7 +5040,7 @@ static int q2t_host_action(scsi_qla_host_t *ha,
"addressing", ha->instance);
tgt->tgt_enable_64bit_addr = 1;
/* 3 is reserved */
sg_tablesize =
sg_tablesize =
QLA_MAX_SG_24XX(ha->request_q_length - 3);
tgt->datasegs_per_cmd = DATASEGS_PER_COMMAND_24XX;
tgt->datasegs_per_cont = DATASEGS_PER_CONT_24XX;
@@ -5050,7 +5050,7 @@ static int q2t_host_action(scsi_qla_host_t *ha,
"addressing enabled", ha->instance);
tgt->tgt_enable_64bit_addr = 1;
/* 3 is reserved */
sg_tablesize =
sg_tablesize =
QLA_MAX_SG64(ha->request_q_length - 3);
tgt->datasegs_per_cmd = DATASEGS_PER_COMMAND64;
tgt->datasegs_per_cont = DATASEGS_PER_CONT64;
@@ -5099,7 +5099,7 @@ do_enable:
TRACE_DBG("Unregistering target for host %ld(%p)",
ha->host_no, ha);
scst_unregister(ha->tgt->scst_tgt);
/*
/*
* Free of tgt happens via callback q2t_target_release
* called from scst_unregister, so we shouldn't touch
* it again.
@@ -5296,7 +5296,7 @@ static int __init q2t_init(void)
goto out_unreg_target2x;
/*
* qla2xxx_tgt_register_driver() happens in q2t_target_detect
* qla2xxx_tgt_register_driver() happens in q2t_target_detect
* called via scst_register_target_template()
*/

View File

@@ -1,18 +1,18 @@
/*
* qla2x00t.h
*
*
* Copyright (C) 2004 - 2009 Vladislav Bolkhovitin <vst@vlnb.net>
* Copyright (C) 2004 - 2005 Leonid Stoljar
* Copyright (C) 2006 Nathaniel Clark <nate@misrule.us>
* Copyright (C) 2006 - 2009 ID7 Ltd.
*
* QLogic 22xx/23xx/24xx/25xx FC target driver.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, version 2
* of the License.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -97,9 +97,9 @@
#define FC_TM_REJECT 4
#define FC_TM_FAILED 5
/*
/*
* Error code of q2t_pre_xmit_response() meaning that cmd's exchange was
* terminated, so no more actions is needed and success should be returned
* terminated, so no more actions is needed and success should be returned
* to SCST. Must be different from any SCST_TGT_RES_* codes.
*/
#define Q2T_PRE_XMIT_RESP_CMD_ABORTED 0x1717