Logging cleanup

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2597 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Vladislav Bolkhovitin
2010-11-04 19:30:38 +00:00
parent f52189609b
commit ac45e164b6
2 changed files with 171 additions and 135 deletions

View File

@@ -525,12 +525,13 @@ static int q2t_target_detect(struct scst_tgt_template *tgtt)
rc = qla2xxx_tgt_register_driver(&t);
if (rc < 0) {
res = rc;
PRINT_ERROR("Unable to register driver: %d", res);
PRINT_ERROR("qla2x00t: Unable to register driver: %d", res);
goto out;
}
if (rc != QLA2X_INITIATOR_MAGIC) {
PRINT_ERROR("Wrong version of the initiator part: %d", rc);
PRINT_ERROR("qla2x00t: Wrong version of the initiator part: "
"%d", rc);
res = -EINVAL;
goto out;
}
@@ -539,7 +540,7 @@ static int q2t_target_detect(struct scst_tgt_template *tgtt)
res = 0;
PRINT_INFO("%s", "Target mode driver for QLogic 2x00 controller "
PRINT_INFO("qla2x00t: %s", "Target mode driver for QLogic 2x00 controller "
"registered successfully");
out:
@@ -692,7 +693,7 @@ static void q2t_clear_tgt_db(struct q2t_tgt *tgt, bool local_only)
TRACE_ENTRY();
TRACE(TRACE_MGMT, "Clearing targets DB %p", tgt);
TRACE(TRACE_MGMT, "qla2x00t: Clearing targets DB %p", tgt);
list_for_each_entry_safe(sess, sess_tmp, &tgt->sess_list,
sess_list_entry) {
@@ -1251,7 +1252,8 @@ static void q2x_send_notify_ack(scsi_qla_host_t *ha, notify_entry_t *iocb,
NOTIFY_ACK_TM_RESP_CODE_VALID);
}
TRACE(TRACE_SCSI, "Sending Notify Ack Seq %#x -> I %#x St %#x RC %#x",
TRACE(TRACE_SCSI, "qla2x00t(%ld): Sending Notify Ack Seq %#x -> I %#x "
"St %#x RC %#x", ha->instance,
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);
@@ -1438,7 +1440,8 @@ static void q24_handle_abts(scsi_qla_host_t *ha, abts24_recv_entry_t *abts)
mcmd = mempool_alloc(q2t_mgmt_cmd_mempool, GFP_ATOMIC);
if (mcmd == NULL) {
PRINT_ERROR("%s: Allocation of ABORT cmd failed", __func__);
PRINT_ERROR("qla2x00t(%ld): %s: Allocation of ABORT cmd failed",
ha->instance, __func__);
goto out_err;
}
memset(mcmd, 0, sizeof(*mcmd));
@@ -1563,7 +1566,8 @@ static void q24_send_notify_ack(scsi_qla_host_t *ha,
nack->ox_id = iocb->ox_id;
nack->vp_index = iocb->vp_index;
TRACE(TRACE_SCSI, "Sending 24xx Notify Ack %d", nack->status);
TRACE(TRACE_SCSI, "qla2x00t(%ld): Sending 24xx Notify Ack %d",
ha->instance, nack->status);
TRACE_BUFFER("24xx Notify Ack packet data", nack, sizeof(*nack));
q2t_exec_queue(ha);
@@ -1613,7 +1617,7 @@ static void q2t_task_mgmt_fn_done(struct scst_mgmt_cmd *scst_mcmd)
mcmd = scst_mgmt_cmd_get_tgt_priv(scst_mcmd);
if (unlikely(mcmd == NULL)) {
PRINT_ERROR("scst_mcmd %p tgt_spec is NULL", mcmd);
PRINT_ERROR("qla2x00t: scst_mcmd %p tgt_spec is NULL", mcmd);
goto out;
}
@@ -1727,9 +1731,10 @@ static int q2t_check_reserve_free_req(scsi_qla_host_t *ha, uint32_t req_cnt)
}
if (unlikely(ha->req_q_cnt < (req_cnt + 2))) {
TRACE(TRACE_OUT_OF_MEM, "There is no room in the request ring: "
"ha->req_ring_index=%d, ha->req_q_cnt=%d, req_cnt=%d",
ha->req_ring_index, ha->req_q_cnt, req_cnt);
TRACE(TRACE_OUT_OF_MEM, "qla2x00t(%ld): There is no room in the "
"request ring: ha->req_ring_index=%d, ha->req_q_cnt=%d, "
"req_cnt=%d", ha->instance, ha->req_ring_index,
ha->req_q_cnt, req_cnt);
res = SCST_TGT_RES_QUEUE_FULL;
goto out;
}
@@ -1771,8 +1776,8 @@ static inline uint32_t q2t_make_handle(scsi_qla_host_t *ha)
if (h > MAX_OUTSTANDING_COMMANDS)
h = 1; /* 0 is Q2T_NULL_HANDLE */
if (h == ha->current_handle) {
TRACE(TRACE_OUT_OF_MEM,
"Ran out of empty cmd slots in ha %p", ha);
TRACE(TRACE_OUT_OF_MEM, "qla2x00t(%ld): Ran out of "
"empty cmd slots in ha %p", ha->instance, ha);
h = Q2T_NULL_HANDLE;
break;
}
@@ -1818,11 +1823,11 @@ static void q2x_build_ctio_pkt(struct q2t_prm *prm)
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,
"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),
GET_TARGET_ID(ha, &pkt->common), pkt->common.rx_id);
TRACE(TRACE_DEBUG|TRACE_SCSI, "qla2x00t(%ld): handle(scst_cmd) -> %08x, "
"timeout %d L %#x -> I %#x E %#x", ha->instance,
pkt->common.handle, Q2T_TIMEOUT,
le16_to_cpu(prm->cmd->atio.atio2x.lun),
GET_TARGET_ID(ha, &pkt->common), pkt->common.rx_id);
}
/* pha->hardware_lock supposed to be held on entry */
@@ -1868,9 +1873,9 @@ static int q24_build_ctio_pkt(struct q2t_prm *prm)
pkt->relative_offset = cpu_to_le32(prm->cmd->offset);
out:
TRACE(TRACE_DEBUG|TRACE_SCSI, "handle(scst_cmd) -> %08x, timeout %d "
"ox_id %#x", pkt->common.handle, Q2T_TIMEOUT,
le16_to_cpu(pkt->ox_id));
TRACE(TRACE_DEBUG|TRACE_SCSI, "qla2x00t(%ld): handle(scst_cmd) -> %08x, "
"timeout %d, ox_id %#x", ha->instance, pkt->common.handle,
Q2T_TIMEOUT, le16_to_cpu(pkt->ox_id));
TRACE_EXIT_RES(res);
return res;
}
@@ -2107,7 +2112,8 @@ static int q2t_pre_xmit_response(struct q2t_cmd *cmd,
goto out;
}
TRACE(TRACE_SCSI, "tag=%lld", scst_cmd_get_tag(scst_cmd));
TRACE(TRACE_SCSI, "qla2x00t(%ld): tag=%lld", ha->instance,
scst_cmd_get_tag(scst_cmd));
prm->cmd = cmd;
prm->tgt = tgt;
@@ -2661,7 +2667,7 @@ static int q2t_rdy_to_xfer(struct scst_cmd *scst_cmd)
TRACE_ENTRY();
TRACE(TRACE_SCSI, "tag=%lld", scst_cmd_get_tag(scst_cmd));
TRACE(TRACE_SCSI, "qla2x00t: tag=%lld", scst_cmd_get_tag(scst_cmd));
cmd = (struct q2t_cmd *)scst_cmd_get_tgt_priv(scst_cmd);
cmd->bufflen = scst_cmd_get_write_fields(scst_cmd, &cmd->sg,
@@ -2841,8 +2847,8 @@ static void q2t_on_free_cmd(struct scst_cmd *scst_cmd)
TRACE_ENTRY();
TRACE(TRACE_SCSI, "Freeing command %p, tag %lld", scst_cmd,
scst_cmd_get_tag(scst_cmd));
TRACE(TRACE_SCSI, "qla2x00t: Freeing command %p, tag %lld",
scst_cmd, scst_cmd_get_tag(scst_cmd));
cmd = (struct q2t_cmd *)scst_cmd_get_tgt_priv(scst_cmd);
scst_cmd_set_tgt_priv(scst_cmd, NULL);
@@ -3077,8 +3083,8 @@ 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",
ctio, status, handle);
TRACE(TRACE_DEBUG|TRACE_SCSI, "qla2x00t(%ld): handle(ctio %p "
"status %#x) <- %08x", ha->instance, ctio, status, handle);
if (handle & CTIO_INTERMEDIATE_HANDLE_MARK) {
/* That could happen only in case of an error/reset/abort */
@@ -3273,7 +3279,7 @@ static int q2x_do_send_cmd_to_scst(struct q2t_cmd *cmd)
#endif
TRACE_DBG("Context %x", context);
TRACE(TRACE_SCSI, "START Command (tag %d, queue_type %d)",
TRACE(TRACE_SCSI, "qla2x00t: START Command (tag %d, queue_type %d)",
cmd->tag, scst_cmd_get_queue_type(cmd->scst_cmd));
scst_cmd_init_done(cmd->scst_cmd, context);
@@ -3348,8 +3354,8 @@ static int q24_do_send_cmd_to_scst(struct q2t_cmd *cmd)
#endif
TRACE_DBG("Context %x", context);
TRACE(TRACE_SCSI, "START Command %p (tag %d, queue type %x)", cmd,
cmd->tag, scst_cmd_get_queue_type(cmd->scst_cmd));
TRACE(TRACE_SCSI, "qla2x00t: START Command %p (tag %d, queue type %x)",
cmd, cmd->tag, scst_cmd_get_queue_type(cmd->scst_cmd));
scst_cmd_init_done(cmd->scst_cmd, context);
out:
@@ -3397,7 +3403,8 @@ static int q2t_send_cmd_to_scst(scsi_qla_host_t *ha, atio_t *atio)
cmd = kmem_cache_zalloc(q2t_cmd_cachep, GFP_ATOMIC);
if (cmd == NULL) {
TRACE(TRACE_OUT_OF_MEM, "%s", "Allocation of cmd failed");
TRACE(TRACE_OUT_OF_MEM, "qla2x00t(%ld): Allocation of cmd "
"failed", ha->instance);
res = -ENOMEM;
goto out;
}
@@ -3451,8 +3458,8 @@ out_sched:
prm = kzalloc(sizeof(*prm), GFP_ATOMIC);
if (prm == NULL) {
PRINT_ERROR("%s", "Unable to create session work, "
"command will be refused");
PRINT_ERROR("qla2x00t(%ld): Unable to create session "
"work, command will be refused", ha->instance);
res = -1;
goto out_free_cmd;
}
@@ -3502,57 +3509,66 @@ static int q2t_issue_task_mgmt(struct q2t_sess *sess, uint8_t *lun,
switch (fn) {
case Q2T_CLEAR_ACA:
TRACE(TRACE_MGMT, "%s", "CLEAR_ACA received");
TRACE(TRACE_MGMT, "qla2x00t(%ld): CLEAR_ACA received",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_CLEAR_ACA,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
case Q2T_TARGET_RESET:
TRACE(TRACE_MGMT, "%s", "TARGET_RESET received");
TRACE(TRACE_MGMT, "qla2x00t(%ld): TARGET_RESET received",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_TARGET_RESET,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
case Q2T_LUN_RESET:
TRACE(TRACE_MGMT, "%s", "LUN_RESET received");
TRACE(TRACE_MGMT, "qla2x00t(%ld): LUN_RESET received",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_LUN_RESET,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
case Q2T_CLEAR_TS:
TRACE(TRACE_MGMT, "%s", "CLEAR_TS received");
TRACE(TRACE_MGMT, "qla2x00t(%ld): CLEAR_TS received",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_CLEAR_TASK_SET,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
case Q2T_ABORT_TS:
TRACE(TRACE_MGMT, "%s", "ABORT_TS received");
TRACE(TRACE_MGMT, "qla2x00t(%ld): ABORT_TS received",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_ABORT_TASK_SET,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
case Q2T_ABORT_ALL:
TRACE(TRACE_MGMT, "%s", "Doing ABORT_ALL_TASKS");
TRACE(TRACE_MGMT, "qla2x00t(%ld): Doing ABORT_ALL_TASKS",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess,
SCST_ABORT_ALL_TASKS,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
case Q2T_ABORT_ALL_SESS:
TRACE(TRACE_MGMT, "%s", "Doing ABORT_ALL_TASKS_SESS");
TRACE(TRACE_MGMT, "qla2x00t(%ld): Doing ABORT_ALL_TASKS_SESS",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess,
SCST_ABORT_ALL_TASKS_SESS,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
case Q2T_NEXUS_LOSS_SESS:
TRACE(TRACE_MGMT, "%s", "Doing NEXUS_LOSS_SESS");
TRACE(TRACE_MGMT, "qla2x00t(%ld): Doing NEXUS_LOSS_SESS",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_NEXUS_LOSS_SESS,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
case Q2T_NEXUS_LOSS:
TRACE(TRACE_MGMT, "%s", "Doing NEXUS_LOSS");
TRACE(TRACE_MGMT, "qla2x00t(%ld): Doing NEXUS_LOSS",
sess->tgt->ha->instance);
rc = scst_rx_mgmt_fn_lun(sess->scst_sess, SCST_NEXUS_LOSS,
lun, lun_size, SCST_ATOMIC, mcmd);
break;
@@ -3655,7 +3671,8 @@ static int q2t_abort_task(scsi_qla_host_t *ha, notify_entry_t *iocb)
mcmd = mempool_alloc(q2t_mgmt_cmd_mempool, GFP_ATOMIC);
if (mcmd == NULL) {
PRINT_ERROR("%s: Allocation of ABORT cmd failed", __func__);
PRINT_ERROR("qla2x00t(%ld): %s: Allocation of ABORT cmd failed",
ha->instance, __func__);
res = -ENOMEM;
goto out;
}
@@ -3692,7 +3709,8 @@ static int q24_handle_els(scsi_qla_host_t *ha, notify24xx_entry_t *iocb)
TRACE_ENTRY();
TRACE(TRACE_MGMT, "ELS opcode %x", iocb->status_subcode);
TRACE(TRACE_MGMT, "qla2x00t(%ld): ELS opcode %x", ha->instance,
iocb->status_subcode);
switch (iocb->status_subcode) {
case ELS_PLOGI:
@@ -4270,12 +4288,13 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
case IMM_NTFY_LIP_RESET:
{
if (IS_FWI2_CAPABLE(ha)) {
TRACE(TRACE_MGMT, "LIP reset (loop %#x), subcode %x",
TRACE(TRACE_MGMT, "qla2x00t(%ld): LIP reset (loop %#x), "
"subcode %x", ha->instance,
le16_to_cpu(iocb24->nport_handle),
iocb24->status_subcode);
} else {
TRACE(TRACE_MGMT, "LIP reset (I %#x)",
GET_TARGET_ID(ha, iocb2x));
TRACE(TRACE_MGMT, "qla2x00t(%ld): LIP reset (I %#x)",
ha->instance, GET_TARGET_ID(ha, iocb2x));
/* set the Clear LIP reset event flag */
add_flags |= NOTIFY_ACK_CLEAR_LIP_RESET;
}
@@ -4287,7 +4306,8 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
case IMM_NTFY_LIP_LINK_REINIT:
{
struct q2t_tgt *tgt = ha->tgt;
TRACE(TRACE_MGMT, "LINK REINIT (loop %#x, subcode %x)",
TRACE(TRACE_MGMT, "qla2x00t(%ld): LINK REINIT (loop %#x, "
"subcode %x)", ha->instance,
le16_to_cpu(iocb24->nport_handle),
iocb24->status_subcode);
if (tgt->link_reinit_iocb_pending)
@@ -4304,11 +4324,13 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
case IMM_NTFY_PORT_LOGOUT:
if (IS_FWI2_CAPABLE(ha)) {
TRACE(TRACE_MGMT, "Port logout (loop %#x, subcode %x)",
TRACE(TRACE_MGMT, "qla2x00t(%ld): Port logout (loop "
"%#x, subcode %x)", ha->instance,
le16_to_cpu(iocb24->nport_handle),
iocb24->status_subcode);
} else {
TRACE(TRACE_MGMT, "Port logout (S %08x -> L %#x)",
TRACE(TRACE_MGMT, "qla2x00t(%ld): Port logout (S "
"%08x -> L %#x)", ha->instance,
le16_to_cpu(iocb2x->seq_id),
le16_to_cpu(iocb2x->lun));
}
@@ -4318,14 +4340,16 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
break;
case IMM_NTFY_GLBL_TPRLO:
TRACE(TRACE_MGMT, "Global TPRLO (%x)", status);
TRACE(TRACE_MGMT, "qla2x00t(%ld): Global TPRLO (%x)",
ha->instance, status);
if (q2t_reset(ha, iocb, Q2T_NEXUS_LOSS) == 0)
send_notify_ack = 0;
/* The sessions will be cleared in the callback, if needed */
break;
case IMM_NTFY_PORT_CONFIG:
TRACE(TRACE_MGMT, "Port config changed (%x)", status);
TRACE(TRACE_MGMT, "qla2x00t(%ld): Port config changed (%x)",
ha->instance, status);
if (q2t_reset(ha, iocb, Q2T_ABORT_ALL) == 0)
send_notify_ack = 0;
/* The sessions will be cleared in the callback, if needed */
@@ -4346,9 +4370,9 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
break;
case IMM_NTFY_ABORT_TASK:
TRACE(TRACE_MGMT, "Abort Task (S %08x I %#x -> L %#x)",
le16_to_cpu(iocb2x->seq_id), GET_TARGET_ID(ha, iocb2x),
le16_to_cpu(iocb2x->lun));
TRACE(TRACE_MGMT, "qla2x00t(%ld): Abort Task (S %08x I %#x -> "
"L %#x)", ha->instance, le16_to_cpu(iocb2x->seq_id),
GET_TARGET_ID(ha, iocb2x), le16_to_cpu(iocb2x->lun));
if (q2t_abort_task(ha, iocb2x) == 0)
send_notify_ack = 0;
break;
@@ -4359,7 +4383,8 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
break;
case IMM_NTFY_MSG_RX:
TRACE(TRACE_MGMT, "Immediate notify task %x", iocb2x->task_flags);
TRACE(TRACE_MGMT, "qla2x00t(%ld): Immediate notify task %x",
ha->instance, iocb2x->task_flags);
if (q2t_handle_task_mgmt(ha, iocb2x) == 0)
send_notify_ack = 0;
break;
@@ -4511,8 +4536,8 @@ static void q24_atio_pkt(scsi_qla_host_t *ha, atio7_entry_t *atio)
goto out;
}
TRACE(TRACE_SCSI, "ATIO pkt %p: type %02x count %02x",
atio, atio->entry_type, atio->entry_count);
TRACE(TRACE_SCSI, "qla2x00t(%ld): ATIO pkt %p: type %02x count %02x",
ha->instance, atio, atio->entry_type, atio->entry_count);
/*
* In tgt_stop mode we also should allow all requests to pass.
@@ -4606,14 +4631,14 @@ static void q2t_response_pkt(scsi_qla_host_t *ha, response_t *pkt)
TRACE_ENTRY();
if (unlikely(tgt == NULL)) {
PRINT_ERROR("Response pkt %x received, but no tgt (ha %p)",
pkt->entry_type, ha);
PRINT_ERROR("qla2x00t(%ld): Response pkt %x received, but no "
"tgt (ha %p)", ha->instance, pkt->entry_type, ha);
goto out;
}
TRACE(TRACE_SCSI, "pkt %p: T %02x C %02x S %02x handle %#x",
pkt, pkt->entry_type, pkt->entry_count, pkt->entry_status,
pkt->handle);
TRACE(TRACE_SCSI, "qla2x00t(%ld): pkt %p: T %02x C %02x S %02x "
"handle %#x", ha->instance, pkt, pkt->entry_type,
pkt->entry_count, pkt->entry_status, pkt->handle);
/*
* In tgt_stop mode we also should allow all requests to pass.
@@ -4873,15 +4898,16 @@ static void q2t_async_event(uint16_t code, scsi_qla_host_t *ha,
case MBA_REQ_TRANSFER_ERR: /* Request Transfer Error */
case MBA_RSP_TRANSFER_ERR: /* Response Transfer Error */
case MBA_ATIO_TRANSFER_ERR: /* ATIO Queue Transfer Error */
TRACE(TRACE_MGMT, "System error async event %#x occured", code);
TRACE(TRACE_MGMT, "qla2x00t(%ld): System error async event %#x "
"occured", ha->instance, code);
break;
case MBA_LOOP_UP:
{
TRACE(TRACE_MGMT, "Async LOOP_UP occured (m[1]=%x, m[2]=%x, "
"m[3]=%x, m[4]=%x)", le16_to_cpu(mailbox[1]),
le16_to_cpu(mailbox[2]), le16_to_cpu(mailbox[3]),
le16_to_cpu(mailbox[4]));
TRACE(TRACE_MGMT, "qla2x00t(%ld): Async LOOP_UP occured "
"(m[1]=%x, m[2]=%x, m[3]=%x, m[4]=%x)", ha->instance,
le16_to_cpu(mailbox[1]), le16_to_cpu(mailbox[2]),
le16_to_cpu(mailbox[3]), le16_to_cpu(mailbox[4]));
if (tgt->link_reinit_iocb_pending) {
q24_send_notify_ack(ha, &tgt->link_reinit_iocb, 0, 0, 0);
tgt->link_reinit_iocb_pending = 0;
@@ -4892,25 +4918,26 @@ static void q2t_async_event(uint16_t code, scsi_qla_host_t *ha,
case MBA_LIP_OCCURRED:
case MBA_LOOP_DOWN:
case MBA_LIP_RESET:
TRACE(TRACE_MGMT, "Async event %#x occured (m[1]=%x, m[2]=%x, "
"m[3]=%x, m[4]=%x)", code,
le16_to_cpu(mailbox[1]), le16_to_cpu(mailbox[2]),
TRACE(TRACE_MGMT, "qla2x00t(%ld): Async event %#x occured "
"(m[1]=%x, m[2]=%x, m[3]=%x, m[4]=%x)", ha->instance,
code, le16_to_cpu(mailbox[1]), le16_to_cpu(mailbox[2]),
le16_to_cpu(mailbox[3]), le16_to_cpu(mailbox[4]));
break;
case MBA_PORT_UPDATE:
case MBA_RSCN_UPDATE:
TRACE(TRACE_MGMT, "Port update async event %#x occured: "
"updating the ports database (m[1]=%x, m[2]=%x, "
"m[3]=%x, m[4]=%x)", code,
TRACE(TRACE_MGMT, "qla2x00t(%ld): Port update async event %#x "
"occured: updating the ports database (m[1]=%x, m[2]=%x, "
"m[3]=%x, m[4]=%x)", ha->instance, code,
le16_to_cpu(mailbox[1]), le16_to_cpu(mailbox[2]),
le16_to_cpu(mailbox[3]), le16_to_cpu(mailbox[4]));
/* .mark_all_devices_lost() is handled by the initiator driver */
break;
default:
TRACE(TRACE_MGMT, "Async event %#x occured: ignore (m[1]=%x, "
"m[2]=%x, m[3]=%x, m[4]=%x)", code,
TRACE(TRACE_MGMT, "qla2x00t(%ld): Async event %#x occured: "
"ignore (m[1]=%x, m[2]=%x, m[3]=%x, m[4]=%x)",
ha->instance, code,
le16_to_cpu(mailbox[1]), le16_to_cpu(mailbox[2]),
le16_to_cpu(mailbox[3]), le16_to_cpu(mailbox[4]));
break;
@@ -4931,7 +4958,8 @@ static int q2t_get_target_name(uint8_t *wwn, char **ppwwn_name)
name = kmalloc(wwn_len, GFP_KERNEL);
if (name == NULL) {
TRACE(TRACE_OUT_OF_MEM, "%s", "Allocation of tgt name failed");
TRACE(TRACE_OUT_OF_MEM, "%s", "qla2x00t: Allocation of tgt "
"name failed");
res = -ENOMEM;
goto out;
}
@@ -4960,7 +4988,8 @@ static int q24_get_loop_id(scsi_qla_host_t *ha, atio7_entry_t *atio7,
gid_list = dma_alloc_coherent(&ha->pdev->dev, GID_LIST_SIZE,
&gid_list_dma, GFP_KERNEL);
if (gid_list == NULL) {
PRINT_ERROR("DMA Alloc failed of %zd", GID_LIST_SIZE);
PRINT_ERROR("qla2x00t(%ld): DMA Alloc failed of %zd",
ha->instance, GID_LIST_SIZE);
res = -ENOMEM;
goto out;
}
@@ -4968,7 +4997,8 @@ static int q24_get_loop_id(scsi_qla_host_t *ha, atio7_entry_t *atio7,
/* Get list of logged in devices */
rc = qla2x00_get_id_list(ha, gid_list, gid_list_dma, &entries);
if (rc != QLA_SUCCESS) {
PRINT_ERROR("get_id_list() failed: %x", rc);
PRINT_ERROR("qla2x00t(%ld): get_id_list() failed: %x",
ha->instance, rc);
res = -1;
goto out_free_id_list;
}
@@ -4998,9 +5028,10 @@ static int q24_get_loop_id(scsi_qla_host_t *ha, atio7_entry_t *atio7,
"%x:%x:%x", atio7->fcp_hdr.s_id[0],
atio7->fcp_hdr.s_id[1], atio7->fcp_hdr.s_id[2]);
} else
PRINT_ERROR("Unable to find initiator with S_ID "
"%x:%x:%x", atio7->fcp_hdr.s_id[0],
atio7->fcp_hdr.s_id[1], atio7->fcp_hdr.s_id[2]);
PRINT_ERROR("qla2x00t(%ld): Unable to find initiator with "
"S_ID %x:%x:%x", ha->instance,
atio7->fcp_hdr.s_id[0], atio7->fcp_hdr.s_id[1],
atio7->fcp_hdr.s_id[2]);
}
out_free_id_list:
@@ -5030,7 +5061,8 @@ static struct q2t_sess *q2t_make_local_sess(scsi_qla_host_t *ha, atio_t *atio)
fcport = kzalloc(sizeof(*fcport), GFP_KERNEL);
if (fcport == NULL) {
PRINT_ERROR("%s", "Allocation of tmp FC port failed");
PRINT_ERROR("qla2x00t(%ld): Allocation of tmp FC port failed",
ha->instance);
goto out;
}
@@ -5040,9 +5072,9 @@ static struct q2t_sess *q2t_make_local_sess(scsi_qla_host_t *ha, atio_t *atio)
rc = qla2x00_get_port_database(ha, fcport, 0);
if (rc != QLA_SUCCESS) {
PRINT_ERROR("Failed to retrieve fcport information "
"-- get_port_database() returned %x "
"(loop_id=0x%04x)", rc, loop_id);
PRINT_ERROR("qla2x00t(%ld): Failed to retrieve fcport "
"information -- get_port_database() returned %x "
"(loop_id=0x%04x)", ha->instance, rc, loop_id);
goto out_free_fcport;
}
@@ -5255,7 +5287,7 @@ static int q2t_add_target(scsi_qla_host_t *ha)
tgt = kzalloc(sizeof(*tgt), GFP_KERNEL);
if (tgt == NULL) {
TRACE(TRACE_OUT_OF_MEM, "%s", "Allocation of tgt "
TRACE(TRACE_OUT_OF_MEM, "qla2x00t: %s", "Allocation of tgt "
"failed");
res = -ENOMEM;
goto out;
@@ -5294,7 +5326,7 @@ static int q2t_add_target(scsi_qla_host_t *ha)
}
if (IS_FWI2_CAPABLE(ha)) {
PRINT_INFO("qla2400tgt(%ld): using 64 Bit PCI "
PRINT_INFO("qla2x00t(%ld): using 64 Bit PCI "
"addressing", ha->instance);
tgt->tgt_enable_64bit_addr = 1;
/* 3 is reserved */
@@ -5326,29 +5358,30 @@ static int q2t_add_target(scsi_qla_host_t *ha)
rc = sysfs_create_link(scst_sysfs_get_tgt_kobj(tgt->scst_tgt),
&ha->host->shost_dev.kobj, "host");
if (rc != 0)
PRINT_ERROR("Unable to create \"host\" link for target "
"%s", scst_get_tgt_name(tgt->scst_tgt));
PRINT_ERROR("qla2x00t(%ld): Unable to create \"host\" link for "
"target %s", ha->instance,
scst_get_tgt_name(tgt->scst_tgt));
if (!ha->parent) {
rc = sysfs_create_file(scst_sysfs_get_tgt_kobj(tgt->scst_tgt),
&q2t_hw_target_attr.attr);
if (rc != 0)
PRINT_ERROR("Unable to create \"hw_target\""
" file for target %s",
scst_get_tgt_name(tgt->scst_tgt));
PRINT_ERROR("qla2x00t(%ld): Unable to create "
"\"hw_target\" file for target %s",
ha->instance, scst_get_tgt_name(tgt->scst_tgt));
} else {
rc = sysfs_create_file(scst_sysfs_get_tgt_kobj(tgt->scst_tgt),
&q2t_vp_node_name_attr.attr);
if (rc != 0)
PRINT_ERROR("Unable to create \"node_name\""
" file for NPIV target %s",
scst_get_tgt_name(tgt->scst_tgt));
PRINT_ERROR("qla2x00t(%ld): Unable to create "
"\"node_name\" file for NPIV target %s",
ha->instance, scst_get_tgt_name(tgt->scst_tgt));
rc = sysfs_create_file(scst_sysfs_get_tgt_kobj(tgt->scst_tgt),
&q2t_vp_parent_host_attr.attr);
if (rc != 0)
PRINT_ERROR("Unable to create \"parent_host\""
" file for NPIV target %s",
scst_get_tgt_name(tgt->scst_tgt));
PRINT_ERROR("qla2x00t(%ld): Unable to create "
"\"parent_host\" file for NPIV target %s",
ha->instance, scst_get_tgt_name(tgt->scst_tgt));
}
#endif
@@ -5540,7 +5573,8 @@ static ssize_t q2t_add_vtarget(const char *target_name, char *params)
res = q2t_parse_wwn(target_name, &port_name);
if (res) {
PRINT_ERROR("Syntax error at target name %s", target_name);
PRINT_ERROR("qla2x00t: Syntax error at target name %s",
target_name);
goto out;
}
@@ -5551,7 +5585,7 @@ static ssize_t q2t_add_vtarget(const char *target_name, char *params)
p = scst_get_next_lexem(&param);
if (*p == '\0') {
PRINT_ERROR("Syntax error at %s (target %s)",
PRINT_ERROR("qla2x00t: Syntax error at %s (target %s)",
param, target_name);
res = -EINVAL;
goto out;
@@ -5559,16 +5593,15 @@ static ssize_t q2t_add_vtarget(const char *target_name, char *params)
pp = scst_get_next_lexem(&param);
if (*pp == '\0') {
PRINT_ERROR("Parameter %s value missed for target %s",
p, target_name);
PRINT_ERROR("qla2x00t: Parameter %s value missed for "
"target %s", p, target_name);
res = -EINVAL;
goto out;
}
if (scst_get_next_lexem(&param)[0] != '\0') {
PRINT_ERROR("Too many parameter's %s values "
"(target %s)",
p, target_name);
PRINT_ERROR("qla2x00t: Too many parameter's %s values "
"(target %s)", p, target_name);
res = -EINVAL;
goto out;
}
@@ -5576,7 +5609,7 @@ static ssize_t q2t_add_vtarget(const char *target_name, char *params)
if (!strcasecmp("node_name", p)) {
res = q2t_parse_wwn(pp, &node_name);
if (res) {
PRINT_ERROR("Illegal node_name %s "
PRINT_ERROR("qla2x00t: Illegal node_name %s "
"(target %s)", pp, target_name);
res = -EINVAL;
goto out;
@@ -5588,7 +5621,7 @@ static ssize_t q2t_add_vtarget(const char *target_name, char *params)
if (!strcasecmp("parent_host", p)) {
res = q2t_parse_wwn(pp, &parent_host);
if (res != 0) {
PRINT_ERROR("Illegal parent_host %s"
PRINT_ERROR("qla2x00t: Illegal parent_host %s"
" (target %s)", pp, target_name);
goto out;
}
@@ -5596,22 +5629,22 @@ static ssize_t q2t_add_vtarget(const char *target_name, char *params)
continue;
}
PRINT_ERROR("Unknown parameter %s (target %s)", p,
target_name);
PRINT_ERROR("qla2x00t: Unknown parameter %s (target %s)", p,
target_name);
res = -EINVAL;
goto out;
}
if (!pnode_name) {
PRINT_ERROR("Missing parameter node_name (target %s)",
target_name);
PRINT_ERROR("qla2x00t: Missing parameter node_name (target %s)",
target_name);
res = -EINVAL;
goto out;
}
if (!pparent_host) {
PRINT_ERROR("Missing parameter parent_host (target %s)",
target_name);
PRINT_ERROR("qla2x00t: Missing parameter parent_host "
"(target %s)", target_name);
res = -EINVAL;
goto out;
}
@@ -5632,7 +5665,8 @@ static ssize_t q2t_del_vtarget(const char *target_name)
res = q2t_parse_wwn(target_name, &port_name);
if (res) {
PRINT_ERROR("Syntax error at target name %s", target_name);
PRINT_ERROR("qla2x00t: Syntax error at target name %s",
target_name);
goto out;
}
@@ -5663,8 +5697,8 @@ static int q2t_get_initiator_port_transport_id(struct scst_session *scst_sess,
tr_id = kzalloc(tr_id_size, GFP_KERNEL);
if (tr_id == NULL) {
PRINT_ERROR("Allocation of TransportID (size %d) failed",
tr_id_size);
PRINT_ERROR("qla2x00t: Allocation of TransportID (size %d) "
"failed", tr_id_size);
res = -ENOMEM;
goto out;
}
@@ -5721,19 +5755,17 @@ static ssize_t q2t_store_expl_conf_enabled(struct kobject *kobj,
switch (buffer[0]) {
case '0':
ha->enable_explicit_conf = 0;
PRINT_INFO("qla2xxx(%ld): explicit conformations disabled",
PRINT_INFO("qla2x00t(%ld): explicit conformations disabled",
ha->instance);
break;
case '1':
ha->enable_explicit_conf = 1;
PRINT_INFO("qla2xxx(%ld): explicit conformations enabled",
PRINT_INFO("qla2x00t(%ld): explicit conformations enabled",
ha->instance);
break;
default:
#if defined(QL_DEBUG_LEVEL_9) || defined(QL_DEBUG_LEVEL_11)
PRINT_INFO("%s: Requested action not understood: %s",
__func__, buffer);
#endif
PRINT_ERROR("%s: qla2x00t(%ld): Requested action not "
"understood: %s", __func__, ha->instance, buffer);
break;
}
@@ -5753,7 +5785,7 @@ static ssize_t q2t_abort_isp_store(struct kobject *kobj,
tgt = (struct q2t_tgt *)scst_tgt_get_tgt_priv(scst_tgt);
ha = tgt->ha;
PRINT_INFO("qla2xxx(%ld): Aborting ISP", ha->instance);
PRINT_INFO("qla2x00t(%ld): Aborting ISP", ha->instance);
set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
qla2x00_wait_for_hba_online(ha);
@@ -5829,8 +5861,8 @@ static ssize_t q2t_vp_parent_host_show(struct kobject *kobj,
ha = to_qla_parent(tgt->ha);
if (!ha) {
PRINT_ERROR("No parent for NPIV target %s",
scst_get_tgt_name(scst_tgt));
PRINT_ERROR("qla2x00t(%ld): No parent for NPIV target %s",
tgt->ha->instance, scst_get_tgt_name(scst_tgt));
return 0;
}
@@ -5933,7 +5965,7 @@ static __init int q2t_proc_log_entry_build(struct scst_tgt_template *templ)
p = scst_create_proc_entry(root, Q2T_PROC_VERSION_NAME,
&q2t_version_proc_data);
if (p == NULL) {
PRINT_ERROR("Not enough memory to register "
PRINT_ERROR("qla2x00t: Not enough memory to register "
"target driver %s entry %s in /proc",
templ->name, Q2T_PROC_VERSION_NAME);
res = -ENOMEM;
@@ -5946,7 +5978,7 @@ static __init int q2t_proc_log_entry_build(struct scst_tgt_template *templ)
p = scst_create_proc_entry(root, Q2T_PROC_LOG_ENTRY_NAME,
&q2t_log_proc_data);
if (p == NULL) {
PRINT_ERROR("Not enough memory to register "
PRINT_ERROR("qla2x00t: Not enough memory to register "
"target driver %s entry %s in /proc",
templ->name, Q2T_PROC_LOG_ENTRY_NAME);
res = -ENOMEM;
@@ -6005,8 +6037,8 @@ static int __init q2t_init(void)
BUILD_BUG_ON(sizeof(atio7_entry_t) != sizeof(atio_entry_t));
PRINT_INFO("Initializing QLogic Fibre Channel HBA Driver target mode "
"addon version %s", Q2T_VERSION_STRING);
PRINT_INFO("qla2x00t: Initializing QLogic Fibre Channel HBA Driver "
"target mode addon version %s", Q2T_VERSION_STRING);
q2t_cmd_cachep = KMEM_CACHE(q2t_cmd, SCST_SLAB_FLAGS);
if (q2t_cmd_cachep == NULL) {
@@ -6067,8 +6099,8 @@ static void __exit q2t_exit(void)
{
TRACE_ENTRY();
PRINT_INFO("%s", "Unloading QLogic Fibre Channel HBA Driver target "
"mode addon driver");
PRINT_INFO("qla2x00t: %s", "Unloading QLogic Fibre Channel HBA Driver "
"target mode addon driver");
/* To sync with q2t_host_action() */
down_write(&q2t_unreg_rwsem);

View File

@@ -4543,7 +4543,7 @@ void scst_abort_cmd(struct scst_cmd *cmd, struct scst_mgmt_cmd *mcmd,
TRACE_ENTRY();
TRACE(TRACE_MGMT, "Aborting cmd %p (tag %llu, op %x)",
TRACE(TRACE_SCSI|TRACE_MGMT_DEBUG, "Aborting cmd %p (tag %llu, op %x)",
cmd, (long long unsigned int)cmd->tag, cmd->cdb[0]);
/* To protect from concurrent aborts */
@@ -5537,7 +5537,11 @@ static void scst_mgmt_cmd_send_done(struct scst_mgmt_cmd *mcmd)
if (scst_is_strict_mgmt_fn(mcmd->fn) && (mcmd->completed_cmd_count > 0))
mcmd->status = SCST_MGMT_STATUS_TASK_NOT_EXIST;
TRACE(TRACE_MINOR_AND_MGMT_DBG, "TM command fn %d finished, "
if (mcmd->fn < SCST_UNREG_SESS_TM)
TRACE(TRACE_MGMT, "TM fn %d finished, "
"status %x", mcmd->fn, mcmd->status);
else
TRACE_MGMT_DBG("TM fn %d finished, "
"status %x", mcmd->fn, mcmd->status);
if (mcmd->fn == SCST_PR_ABORT_ALL) {
@@ -5870,7 +5874,7 @@ int scst_rx_mgmt_fn(struct scst_session *sess,
mcmd->cmd_sn_set = params->cmd_sn_set;
mcmd->cmd_sn = params->cmd_sn;
if (params->fn <= SCST_TARGET_RESET)
if (params->fn < SCST_UNREG_SESS_TM)
TRACE(TRACE_MGMT, "TM fn %d", params->fn);
else
TRACE_MGMT_DBG("TM fn %d", params->fn);