提交 99bc5d55 编写于 作者: J John Soni Jose 提交者: James Bottomley

[SCSI] be2iscsi: Added Logging mechanism for the driver.

Added new log level mechanism for different events. These
log levels can be set at driver load time/run time. The
log level is set for each Scsi_host.

Fixed few multi-line print warning to get over the new checkpatch.pl
warnings on multi-line strings.
Signed-off-by: NJohn Soni Jose <sony.john-n@emulex.com>
Signed-off-by: NJayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
上级 9aef4200
...@@ -48,7 +48,8 @@ int beiscsi_pci_soft_reset(struct beiscsi_hba *phba) ...@@ -48,7 +48,8 @@ int beiscsi_pci_soft_reset(struct beiscsi_hba *phba)
} }
if (sreset & BE2_SET_RESET) { if (sreset & BE2_SET_RESET) {
printk(KERN_ERR "Soft Reset did not deassert\n"); printk(KERN_ERR DRV_NAME
" Soft Reset did not deassert\n");
return -EIO; return -EIO;
} }
pconline1 = BE2_MPU_IRAM_ONLINE; pconline1 = BE2_MPU_IRAM_ONLINE;
...@@ -67,7 +68,8 @@ int beiscsi_pci_soft_reset(struct beiscsi_hba *phba) ...@@ -67,7 +68,8 @@ int beiscsi_pci_soft_reset(struct beiscsi_hba *phba)
i++; i++;
} }
if (sreset & BE2_SET_RESET) { if (sreset & BE2_SET_RESET) {
printk(KERN_ERR "MPU Online Soft Reset did not deassert\n"); printk(KERN_ERR DRV_NAME
" MPU Online Soft Reset did not deassert\n");
return -EIO; return -EIO;
} }
return 0; return 0;
...@@ -93,7 +95,8 @@ int be_chk_reset_complete(struct beiscsi_hba *phba) ...@@ -93,7 +95,8 @@ int be_chk_reset_complete(struct beiscsi_hba *phba)
} }
if ((status & 0x80000000) || (!num_loop)) { if ((status & 0x80000000) || (!num_loop)) {
printk(KERN_ERR "Failed in be_chk_reset_complete" beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BC_%d : Failed in be_chk_reset_complete"
"status = 0x%x\n", status); "status = 0x%x\n", status);
return -EIO; return -EIO;
} }
...@@ -169,6 +172,7 @@ static int be_mcc_compl_process(struct be_ctrl_info *ctrl, ...@@ -169,6 +172,7 @@ static int be_mcc_compl_process(struct be_ctrl_info *ctrl,
struct be_mcc_compl *compl) struct be_mcc_compl *compl)
{ {
u16 compl_status, extd_status; u16 compl_status, extd_status;
struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev);
be_dws_le_to_cpu(compl, 4); be_dws_le_to_cpu(compl, 4);
...@@ -177,9 +181,12 @@ static int be_mcc_compl_process(struct be_ctrl_info *ctrl, ...@@ -177,9 +181,12 @@ static int be_mcc_compl_process(struct be_ctrl_info *ctrl,
if (compl_status != MCC_STATUS_SUCCESS) { if (compl_status != MCC_STATUS_SUCCESS) {
extd_status = (compl->status >> CQE_STATUS_EXTD_SHIFT) & extd_status = (compl->status >> CQE_STATUS_EXTD_SHIFT) &
CQE_STATUS_EXTD_MASK; CQE_STATUS_EXTD_MASK;
dev_err(&ctrl->pdev->dev,
"error in cmd completion: status(compl/extd)=%d/%d\n", beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BC_%d : error in cmd completion: status(compl/extd)=%d/%d\n",
compl_status, extd_status); compl_status, extd_status);
return -EBUSY; return -EBUSY;
} }
return 0; return 0;
...@@ -233,19 +240,26 @@ void beiscsi_async_link_state_process(struct beiscsi_hba *phba, ...@@ -233,19 +240,26 @@ void beiscsi_async_link_state_process(struct beiscsi_hba *phba,
{ {
switch (evt->port_link_status) { switch (evt->port_link_status) {
case ASYNC_EVENT_LINK_DOWN: case ASYNC_EVENT_LINK_DOWN:
SE_DEBUG(DBG_LVL_1, "Link Down on Physical Port %d\n", beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_INIT,
"BC_%d : Link Down on Physical Port %d\n",
evt->physical_port); evt->physical_port);
phba->state |= BE_ADAPTER_LINK_DOWN; phba->state |= BE_ADAPTER_LINK_DOWN;
iscsi_host_for_each_session(phba->shost, iscsi_host_for_each_session(phba->shost,
be2iscsi_fail_session); be2iscsi_fail_session);
break; break;
case ASYNC_EVENT_LINK_UP: case ASYNC_EVENT_LINK_UP:
phba->state = BE_ADAPTER_UP; phba->state = BE_ADAPTER_UP;
SE_DEBUG(DBG_LVL_1, "Link UP on Physical Port %d\n", beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_INIT,
"BC_%d : Link UP on Physical Port %d\n",
evt->physical_port); evt->physical_port);
break; break;
default: default:
SE_DEBUG(DBG_LVL_1, "Unexpected Async Notification %d on" beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_INIT,
"BC_%d : Unexpected Async Notification %d on"
"Physical Port %d\n", "Physical Port %d\n",
evt->port_link_status, evt->port_link_status,
evt->physical_port); evt->physical_port);
...@@ -279,8 +293,10 @@ int beiscsi_process_mcc(struct beiscsi_hba *phba) ...@@ -279,8 +293,10 @@ int beiscsi_process_mcc(struct beiscsi_hba *phba)
beiscsi_async_link_state_process(phba, beiscsi_async_link_state_process(phba,
(struct be_async_event_link_state *) compl); (struct be_async_event_link_state *) compl);
else else
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR,
" Unsupported Async Event, flags" BEISCSI_LOG_CONFIG |
BEISCSI_LOG_MBOX,
"BC_%d : Unsupported Async Event, flags"
" = 0x%08x\n", compl->flags); " = 0x%08x\n", compl->flags);
} else if (compl->flags & CQE_FLAGS_COMPLETED_MASK) { } else if (compl->flags & CQE_FLAGS_COMPLETED_MASK) {
...@@ -312,7 +328,10 @@ static int be_mcc_wait_compl(struct beiscsi_hba *phba) ...@@ -312,7 +328,10 @@ static int be_mcc_wait_compl(struct beiscsi_hba *phba)
udelay(100); udelay(100);
} }
if (i == mcc_timeout) { if (i == mcc_timeout) {
dev_err(&phba->pcidev->dev, "mccq poll timed out\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BC_%d : mccq poll timed out\n");
return -EBUSY; return -EBUSY;
} }
return 0; return 0;
...@@ -338,7 +357,11 @@ static int be_mbox_db_ready_wait(struct be_ctrl_info *ctrl) ...@@ -338,7 +357,11 @@ static int be_mbox_db_ready_wait(struct be_ctrl_info *ctrl)
break; break;
if (cnt > 12000000) { if (cnt > 12000000) {
dev_err(&ctrl->pdev->dev, "mbox_db poll timed out\n"); struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev);
beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BC_%d : mbox_db poll timed out\n");
return -EBUSY; return -EBUSY;
} }
...@@ -360,6 +383,7 @@ int be_mbox_notify(struct be_ctrl_info *ctrl) ...@@ -360,6 +383,7 @@ int be_mbox_notify(struct be_ctrl_info *ctrl)
struct be_dma_mem *mbox_mem = &ctrl->mbox_mem; struct be_dma_mem *mbox_mem = &ctrl->mbox_mem;
struct be_mcc_mailbox *mbox = mbox_mem->va; struct be_mcc_mailbox *mbox = mbox_mem->va;
struct be_mcc_compl *compl = &mbox->compl; struct be_mcc_compl *compl = &mbox->compl;
struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev);
val &= ~MPU_MAILBOX_DB_RDY_MASK; val &= ~MPU_MAILBOX_DB_RDY_MASK;
val |= MPU_MAILBOX_DB_HI_MASK; val |= MPU_MAILBOX_DB_HI_MASK;
...@@ -368,7 +392,10 @@ int be_mbox_notify(struct be_ctrl_info *ctrl) ...@@ -368,7 +392,10 @@ int be_mbox_notify(struct be_ctrl_info *ctrl)
status = be_mbox_db_ready_wait(ctrl); status = be_mbox_db_ready_wait(ctrl);
if (status != 0) { if (status != 0) {
SE_DEBUG(DBG_LVL_1, " be_mbox_db_ready_wait failed\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BC_%d : be_mbox_db_ready_wait failed\n");
return status; return status;
} }
val = 0; val = 0;
...@@ -379,18 +406,27 @@ int be_mbox_notify(struct be_ctrl_info *ctrl) ...@@ -379,18 +406,27 @@ int be_mbox_notify(struct be_ctrl_info *ctrl)
status = be_mbox_db_ready_wait(ctrl); status = be_mbox_db_ready_wait(ctrl);
if (status != 0) { if (status != 0) {
SE_DEBUG(DBG_LVL_1, " be_mbox_db_ready_wait failed\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BC_%d : be_mbox_db_ready_wait failed\n");
return status; return status;
} }
if (be_mcc_compl_is_new(compl)) { if (be_mcc_compl_is_new(compl)) {
status = be_mcc_compl_process(ctrl, &mbox->compl); status = be_mcc_compl_process(ctrl, &mbox->compl);
be_mcc_compl_use(compl); be_mcc_compl_use(compl);
if (status) { if (status) {
SE_DEBUG(DBG_LVL_1, "After be_mcc_compl_process\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BC_%d : After be_mcc_compl_process\n");
return status; return status;
} }
} else { } else {
dev_err(&ctrl->pdev->dev, "invalid mailbox completion\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BC_%d : Invalid Mailbox Completion\n");
return -EBUSY; return -EBUSY;
} }
return 0; return 0;
...@@ -436,7 +472,10 @@ static int be_mbox_notify_wait(struct beiscsi_hba *phba) ...@@ -436,7 +472,10 @@ static int be_mbox_notify_wait(struct beiscsi_hba *phba)
if (status) if (status)
return status; return status;
} else { } else {
dev_err(&phba->pcidev->dev, "invalid mailbox completion\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BC_%d : invalid mailbox completion\n");
return -EBUSY; return -EBUSY;
} }
return 0; return 0;
...@@ -528,7 +567,6 @@ int beiscsi_cmd_eq_create(struct be_ctrl_info *ctrl, ...@@ -528,7 +567,6 @@ int beiscsi_cmd_eq_create(struct be_ctrl_info *ctrl,
struct be_dma_mem *q_mem = &eq->dma_mem; struct be_dma_mem *q_mem = &eq->dma_mem;
int status; int status;
SE_DEBUG(DBG_LVL_8, "In beiscsi_cmd_eq_create\n");
spin_lock(&ctrl->mbox_lock); spin_lock(&ctrl->mbox_lock);
memset(wrb, 0, sizeof(*wrb)); memset(wrb, 0, sizeof(*wrb));
...@@ -563,10 +601,10 @@ int beiscsi_cmd_eq_create(struct be_ctrl_info *ctrl, ...@@ -563,10 +601,10 @@ int beiscsi_cmd_eq_create(struct be_ctrl_info *ctrl,
int be_cmd_fw_initialize(struct be_ctrl_info *ctrl) int be_cmd_fw_initialize(struct be_ctrl_info *ctrl)
{ {
struct be_mcc_wrb *wrb = wrb_from_mbox(&ctrl->mbox_mem); struct be_mcc_wrb *wrb = wrb_from_mbox(&ctrl->mbox_mem);
struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev);
int status; int status;
u8 *endian_check; u8 *endian_check;
SE_DEBUG(DBG_LVL_8, "In be_cmd_fw_initialize\n");
spin_lock(&ctrl->mbox_lock); spin_lock(&ctrl->mbox_lock);
memset(wrb, 0, sizeof(*wrb)); memset(wrb, 0, sizeof(*wrb));
...@@ -583,7 +621,8 @@ int be_cmd_fw_initialize(struct be_ctrl_info *ctrl) ...@@ -583,7 +621,8 @@ int be_cmd_fw_initialize(struct be_ctrl_info *ctrl)
status = be_mbox_notify(ctrl); status = be_mbox_notify(ctrl);
if (status) if (status)
SE_DEBUG(DBG_LVL_1, "be_cmd_fw_initialize Failed\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BC_%d : be_cmd_fw_initialize Failed\n");
spin_unlock(&ctrl->mbox_lock); spin_unlock(&ctrl->mbox_lock);
return status; return status;
...@@ -596,11 +635,11 @@ int beiscsi_cmd_cq_create(struct be_ctrl_info *ctrl, ...@@ -596,11 +635,11 @@ int beiscsi_cmd_cq_create(struct be_ctrl_info *ctrl,
struct be_mcc_wrb *wrb = wrb_from_mbox(&ctrl->mbox_mem); struct be_mcc_wrb *wrb = wrb_from_mbox(&ctrl->mbox_mem);
struct be_cmd_req_cq_create *req = embedded_payload(wrb); struct be_cmd_req_cq_create *req = embedded_payload(wrb);
struct be_cmd_resp_cq_create *resp = embedded_payload(wrb); struct be_cmd_resp_cq_create *resp = embedded_payload(wrb);
struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev);
struct be_dma_mem *q_mem = &cq->dma_mem; struct be_dma_mem *q_mem = &cq->dma_mem;
void *ctxt = &req->context; void *ctxt = &req->context;
int status; int status;
SE_DEBUG(DBG_LVL_8, "In beiscsi_cmd_cq_create\n");
spin_lock(&ctrl->mbox_lock); spin_lock(&ctrl->mbox_lock);
memset(wrb, 0, sizeof(*wrb)); memset(wrb, 0, sizeof(*wrb));
...@@ -608,8 +647,6 @@ int beiscsi_cmd_cq_create(struct be_ctrl_info *ctrl, ...@@ -608,8 +647,6 @@ int beiscsi_cmd_cq_create(struct be_ctrl_info *ctrl,
be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON,
OPCODE_COMMON_CQ_CREATE, sizeof(*req)); OPCODE_COMMON_CQ_CREATE, sizeof(*req));
if (!q_mem->va)
SE_DEBUG(DBG_LVL_1, "uninitialized q_mem->va\n");
req->num_pages = cpu_to_le16(PAGES_4K_SPANNED(q_mem->va, q_mem->size)); req->num_pages = cpu_to_le16(PAGES_4K_SPANNED(q_mem->va, q_mem->size));
...@@ -633,8 +670,10 @@ int beiscsi_cmd_cq_create(struct be_ctrl_info *ctrl, ...@@ -633,8 +670,10 @@ int beiscsi_cmd_cq_create(struct be_ctrl_info *ctrl,
cq->id = le16_to_cpu(resp->cq_id); cq->id = le16_to_cpu(resp->cq_id);
cq->created = true; cq->created = true;
} else } else
SE_DEBUG(DBG_LVL_1, "In be_cmd_cq_create, status=ox%08x\n", beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BC_%d : In be_cmd_cq_create, status=ox%08x\n",
status); status);
spin_unlock(&ctrl->mbox_lock); spin_unlock(&ctrl->mbox_lock);
return status; return status;
...@@ -700,10 +739,14 @@ int beiscsi_cmd_q_destroy(struct be_ctrl_info *ctrl, struct be_queue_info *q, ...@@ -700,10 +739,14 @@ int beiscsi_cmd_q_destroy(struct be_ctrl_info *ctrl, struct be_queue_info *q,
{ {
struct be_mcc_wrb *wrb = wrb_from_mbox(&ctrl->mbox_mem); struct be_mcc_wrb *wrb = wrb_from_mbox(&ctrl->mbox_mem);
struct be_cmd_req_q_destroy *req = embedded_payload(wrb); struct be_cmd_req_q_destroy *req = embedded_payload(wrb);
struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev);
u8 subsys = 0, opcode = 0; u8 subsys = 0, opcode = 0;
int status; int status;
SE_DEBUG(DBG_LVL_8, "In beiscsi_cmd_q_destroy\n"); beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT,
"BC_%d : In beiscsi_cmd_q_destroy "
"queue_type : %d\n", queue_type);
spin_lock(&ctrl->mbox_lock); spin_lock(&ctrl->mbox_lock);
memset(wrb, 0, sizeof(*wrb)); memset(wrb, 0, sizeof(*wrb));
be_wrb_hdr_prepare(wrb, sizeof(*req), true, 0); be_wrb_hdr_prepare(wrb, sizeof(*req), true, 0);
...@@ -759,7 +802,6 @@ int be_cmd_create_default_pdu_queue(struct be_ctrl_info *ctrl, ...@@ -759,7 +802,6 @@ int be_cmd_create_default_pdu_queue(struct be_ctrl_info *ctrl,
void *ctxt = &req->context; void *ctxt = &req->context;
int status; int status;
SE_DEBUG(DBG_LVL_8, "In be_cmd_create_default_pdu_queue\n");
spin_lock(&ctrl->mbox_lock); spin_lock(&ctrl->mbox_lock);
memset(wrb, 0, sizeof(*wrb)); memset(wrb, 0, sizeof(*wrb));
...@@ -830,6 +872,7 @@ int be_cmd_iscsi_post_sgl_pages(struct be_ctrl_info *ctrl, ...@@ -830,6 +872,7 @@ int be_cmd_iscsi_post_sgl_pages(struct be_ctrl_info *ctrl,
{ {
struct be_mcc_wrb *wrb = wrb_from_mbox(&ctrl->mbox_mem); struct be_mcc_wrb *wrb = wrb_from_mbox(&ctrl->mbox_mem);
struct be_post_sgl_pages_req *req = embedded_payload(wrb); struct be_post_sgl_pages_req *req = embedded_payload(wrb);
struct beiscsi_hba *phba = pci_get_drvdata(ctrl->pdev);
int status; int status;
unsigned int curr_pages; unsigned int curr_pages;
u32 internal_page_offset = 0; u32 internal_page_offset = 0;
...@@ -860,8 +903,9 @@ int be_cmd_iscsi_post_sgl_pages(struct be_ctrl_info *ctrl, ...@@ -860,8 +903,9 @@ int be_cmd_iscsi_post_sgl_pages(struct be_ctrl_info *ctrl,
status = be_mbox_notify(ctrl); status = be_mbox_notify(ctrl);
if (status) { if (status) {
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"FW CMD to map iscsi frags failed.\n"); "BC_%d : FW CMD to map iscsi frags failed.\n");
goto error; goto error;
} }
} while (num_pages > 0); } while (num_pages > 0);
......
...@@ -50,21 +50,27 @@ struct iscsi_cls_session *beiscsi_session_create(struct iscsi_endpoint *ep, ...@@ -50,21 +50,27 @@ struct iscsi_cls_session *beiscsi_session_create(struct iscsi_endpoint *ep,
struct beiscsi_session *beiscsi_sess; struct beiscsi_session *beiscsi_sess;
struct beiscsi_io_task *io_task; struct beiscsi_io_task *io_task;
SE_DEBUG(DBG_LVL_8, "In beiscsi_session_create\n");
if (!ep) { if (!ep) {
SE_DEBUG(DBG_LVL_1, "beiscsi_session_create: invalid ep\n"); printk(KERN_ERR
"beiscsi_session_create: invalid ep\n");
return NULL; return NULL;
} }
beiscsi_ep = ep->dd_data; beiscsi_ep = ep->dd_data;
phba = beiscsi_ep->phba; phba = beiscsi_ep->phba;
shost = phba->shost; shost = phba->shost;
beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_session_create\n");
if (cmds_max > beiscsi_ep->phba->params.wrbs_per_cxn) { if (cmds_max > beiscsi_ep->phba->params.wrbs_per_cxn) {
shost_printk(KERN_ERR, shost, "Cannot handle %d cmds." beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"Max cmds per session supported is %d. Using %d. " "BS_%d : Cannot handle %d cmds."
"Max cmds per session supported is %d. Using %d."
"\n", cmds_max, "\n", cmds_max,
beiscsi_ep->phba->params.wrbs_per_cxn, beiscsi_ep->phba->params.wrbs_per_cxn,
beiscsi_ep->phba->params.wrbs_per_cxn); beiscsi_ep->phba->params.wrbs_per_cxn);
cmds_max = beiscsi_ep->phba->params.wrbs_per_cxn; cmds_max = beiscsi_ep->phba->params.wrbs_per_cxn;
} }
...@@ -102,7 +108,7 @@ void beiscsi_session_destroy(struct iscsi_cls_session *cls_session) ...@@ -102,7 +108,7 @@ void beiscsi_session_destroy(struct iscsi_cls_session *cls_session)
struct iscsi_session *sess = cls_session->dd_data; struct iscsi_session *sess = cls_session->dd_data;
struct beiscsi_session *beiscsi_sess = sess->dd_data; struct beiscsi_session *beiscsi_sess = sess->dd_data;
SE_DEBUG(DBG_LVL_8, "In beiscsi_session_destroy\n"); printk(KERN_INFO "In beiscsi_session_destroy\n");
pci_pool_destroy(beiscsi_sess->bhs_pool); pci_pool_destroy(beiscsi_sess->bhs_pool);
iscsi_session_teardown(cls_session); iscsi_session_teardown(cls_session);
} }
...@@ -123,11 +129,13 @@ beiscsi_conn_create(struct iscsi_cls_session *cls_session, u32 cid) ...@@ -123,11 +129,13 @@ beiscsi_conn_create(struct iscsi_cls_session *cls_session, u32 cid)
struct iscsi_session *sess; struct iscsi_session *sess;
struct beiscsi_session *beiscsi_sess; struct beiscsi_session *beiscsi_sess;
SE_DEBUG(DBG_LVL_8, "In beiscsi_conn_create ,cid"
"from iscsi layer=%d\n", cid);
shost = iscsi_session_to_shost(cls_session); shost = iscsi_session_to_shost(cls_session);
phba = iscsi_host_priv(shost); phba = iscsi_host_priv(shost);
beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_conn_create ,cid"
"from iscsi layer=%d\n", cid);
cls_conn = iscsi_conn_setup(cls_session, sizeof(*beiscsi_conn), cid); cls_conn = iscsi_conn_setup(cls_session, sizeof(*beiscsi_conn), cid);
if (!cls_conn) if (!cls_conn)
return NULL; return NULL;
...@@ -154,12 +162,15 @@ static int beiscsi_bindconn_cid(struct beiscsi_hba *phba, ...@@ -154,12 +162,15 @@ static int beiscsi_bindconn_cid(struct beiscsi_hba *phba,
unsigned int cid) unsigned int cid)
{ {
if (phba->conn_table[cid]) { if (phba->conn_table[cid]) {
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"Connection table already occupied. Detected clash\n"); "BS_%d : Connection table already occupied. Detected clash\n");
return -EINVAL; return -EINVAL;
} else { } else {
SE_DEBUG(DBG_LVL_8, "phba->conn_table[%d]=%p(beiscsi_conn)\n", beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : phba->conn_table[%d]=%p(beiscsi_conn)\n",
cid, beiscsi_conn); cid, beiscsi_conn);
phba->conn_table[cid] = beiscsi_conn; phba->conn_table[cid] = beiscsi_conn;
} }
return 0; return 0;
...@@ -184,7 +195,6 @@ int beiscsi_conn_bind(struct iscsi_cls_session *cls_session, ...@@ -184,7 +195,6 @@ int beiscsi_conn_bind(struct iscsi_cls_session *cls_session,
struct beiscsi_endpoint *beiscsi_ep; struct beiscsi_endpoint *beiscsi_ep;
struct iscsi_endpoint *ep; struct iscsi_endpoint *ep;
SE_DEBUG(DBG_LVL_8, "In beiscsi_conn_bind\n");
ep = iscsi_lookup_endpoint(transport_fd); ep = iscsi_lookup_endpoint(transport_fd);
if (!ep) if (!ep)
return -EINVAL; return -EINVAL;
...@@ -195,17 +205,21 @@ int beiscsi_conn_bind(struct iscsi_cls_session *cls_session, ...@@ -195,17 +205,21 @@ int beiscsi_conn_bind(struct iscsi_cls_session *cls_session,
return -EINVAL; return -EINVAL;
if (beiscsi_ep->phba != phba) { if (beiscsi_ep->phba != phba) {
SE_DEBUG(DBG_LVL_8, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"beiscsi_ep->hba=%p not equal to phba=%p\n", "BS_%d : beiscsi_ep->hba=%p not equal to phba=%p\n",
beiscsi_ep->phba, phba); beiscsi_ep->phba, phba);
return -EEXIST; return -EEXIST;
} }
beiscsi_conn->beiscsi_conn_cid = beiscsi_ep->ep_cid; beiscsi_conn->beiscsi_conn_cid = beiscsi_ep->ep_cid;
beiscsi_conn->ep = beiscsi_ep; beiscsi_conn->ep = beiscsi_ep;
beiscsi_ep->conn = beiscsi_conn; beiscsi_ep->conn = beiscsi_conn;
SE_DEBUG(DBG_LVL_8, "beiscsi_conn=%p conn=%p ep_cid=%d\n",
beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : beiscsi_conn=%p conn=%p ep_cid=%d\n",
beiscsi_conn, conn, beiscsi_ep->ep_cid); beiscsi_conn, conn, beiscsi_ep->ep_cid);
return beiscsi_bindconn_cid(phba, beiscsi_conn, beiscsi_ep->ep_cid); return beiscsi_bindconn_cid(phba, beiscsi_conn, beiscsi_ep->ep_cid);
} }
...@@ -219,7 +233,8 @@ static int beiscsi_create_ipv4_iface(struct beiscsi_hba *phba) ...@@ -219,7 +233,8 @@ static int beiscsi_create_ipv4_iface(struct beiscsi_hba *phba)
ISCSI_IFACE_TYPE_IPV4, ISCSI_IFACE_TYPE_IPV4,
0, 0); 0, 0);
if (!phba->ipv4_iface) { if (!phba->ipv4_iface) {
shost_printk(KERN_ERR, phba->shost, "Could not " beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Could not "
"create default IPv4 address.\n"); "create default IPv4 address.\n");
return -ENODEV; return -ENODEV;
} }
...@@ -237,7 +252,8 @@ static int beiscsi_create_ipv6_iface(struct beiscsi_hba *phba) ...@@ -237,7 +252,8 @@ static int beiscsi_create_ipv6_iface(struct beiscsi_hba *phba)
ISCSI_IFACE_TYPE_IPV6, ISCSI_IFACE_TYPE_IPV6,
0, 0); 0, 0);
if (!phba->ipv6_iface) { if (!phba->ipv6_iface) {
shost_printk(KERN_ERR, phba->shost, "Could not " beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Could not "
"create default IPv6 address.\n"); "create default IPv6 address.\n");
return -ENODEV; return -ENODEV;
} }
...@@ -299,12 +315,14 @@ beiscsi_set_static_ip(struct Scsi_Host *shost, ...@@ -299,12 +315,14 @@ beiscsi_set_static_ip(struct Scsi_Host *shost,
iface_ip = nla_data(nla); iface_ip = nla_data(nla);
break; break;
default: default:
shost_printk(KERN_ERR, shost, "Unsupported param %d\n", beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Unsupported param %d\n",
iface_param->param); iface_param->param);
} }
if (!iface_ip || !iface_subnet) { if (!iface_ip || !iface_subnet) {
shost_printk(KERN_ERR, shost, "IP and Subnet Mask required\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : IP and Subnet Mask required\n");
return -EINVAL; return -EINVAL;
} }
...@@ -335,7 +353,8 @@ beiscsi_set_ipv4(struct Scsi_Host *shost, ...@@ -335,7 +353,8 @@ beiscsi_set_ipv4(struct Scsi_Host *shost,
ret = beiscsi_set_static_ip(shost, iface_param, ret = beiscsi_set_static_ip(shost, iface_param,
data, dt_len); data, dt_len);
else else
shost_printk(KERN_ERR, shost, "Invalid BOOTPROTO: %d\n", beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Invalid BOOTPROTO: %d\n",
iface_param->value[0]); iface_param->value[0]);
break; break;
case ISCSI_NET_PARAM_IFACE_ENABLE: case ISCSI_NET_PARAM_IFACE_ENABLE:
...@@ -350,7 +369,8 @@ beiscsi_set_ipv4(struct Scsi_Host *shost, ...@@ -350,7 +369,8 @@ beiscsi_set_ipv4(struct Scsi_Host *shost,
data, dt_len); data, dt_len);
break; break;
default: default:
shost_printk(KERN_ERR, shost, "Param %d not supported\n", beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Param %d not supported\n",
iface_param->param); iface_param->param);
} }
...@@ -379,7 +399,8 @@ beiscsi_set_ipv6(struct Scsi_Host *shost, ...@@ -379,7 +399,8 @@ beiscsi_set_ipv6(struct Scsi_Host *shost,
ISCSI_BOOTPROTO_STATIC); ISCSI_BOOTPROTO_STATIC);
break; break;
default: default:
shost_printk(KERN_ERR, shost, "Param %d not supported\n", beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Param %d not supported\n",
iface_param->param); iface_param->param);
} }
...@@ -390,6 +411,7 @@ int be2iscsi_iface_set_param(struct Scsi_Host *shost, ...@@ -390,6 +411,7 @@ int be2iscsi_iface_set_param(struct Scsi_Host *shost,
void *data, uint32_t dt_len) void *data, uint32_t dt_len)
{ {
struct iscsi_iface_param_info *iface_param = NULL; struct iscsi_iface_param_info *iface_param = NULL;
struct beiscsi_hba *phba = iscsi_host_priv(shost);
struct nlattr *attrib; struct nlattr *attrib;
uint32_t rm_len = dt_len; uint32_t rm_len = dt_len;
int ret = 0 ; int ret = 0 ;
...@@ -404,9 +426,11 @@ int be2iscsi_iface_set_param(struct Scsi_Host *shost, ...@@ -404,9 +426,11 @@ int be2iscsi_iface_set_param(struct Scsi_Host *shost,
* BE2ISCSI only supports 1 interface * BE2ISCSI only supports 1 interface
*/ */
if (iface_param->iface_num) { if (iface_param->iface_num) {
shost_printk(KERN_ERR, shost, "Invalid iface_num %d." beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Invalid iface_num %d."
"Only iface_num 0 is supported.\n", "Only iface_num 0 is supported.\n",
iface_param->iface_num); iface_param->iface_num);
return -EINVAL; return -EINVAL;
} }
...@@ -420,8 +444,8 @@ int be2iscsi_iface_set_param(struct Scsi_Host *shost, ...@@ -420,8 +444,8 @@ int be2iscsi_iface_set_param(struct Scsi_Host *shost,
data, dt_len); data, dt_len);
break; break;
default: default:
shost_printk(KERN_ERR, shost, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"Invalid iface type :%d passed\n", "BS_%d : Invalid iface type :%d passed\n",
iface_param->iface_type); iface_param->iface_type);
break; break;
} }
...@@ -518,7 +542,10 @@ int beiscsi_ep_get_param(struct iscsi_endpoint *ep, ...@@ -518,7 +542,10 @@ int beiscsi_ep_get_param(struct iscsi_endpoint *ep,
struct beiscsi_endpoint *beiscsi_ep = ep->dd_data; struct beiscsi_endpoint *beiscsi_ep = ep->dd_data;
int len = 0; int len = 0;
SE_DEBUG(DBG_LVL_8, "In beiscsi_ep_get_param, param= %d\n", param); beiscsi_log(beiscsi_ep->phba, KERN_INFO,
BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_ep_get_param,"
" param= %d\n", param);
switch (param) { switch (param) {
case ISCSI_PARAM_CONN_PORT: case ISCSI_PARAM_CONN_PORT:
...@@ -541,9 +568,14 @@ int beiscsi_set_param(struct iscsi_cls_conn *cls_conn, ...@@ -541,9 +568,14 @@ int beiscsi_set_param(struct iscsi_cls_conn *cls_conn,
{ {
struct iscsi_conn *conn = cls_conn->dd_data; struct iscsi_conn *conn = cls_conn->dd_data;
struct iscsi_session *session = conn->session; struct iscsi_session *session = conn->session;
struct beiscsi_hba *phba = NULL;
int ret; int ret;
SE_DEBUG(DBG_LVL_8, "In beiscsi_conn_set_param, param= %d\n", param); phba = ((struct beiscsi_conn *)conn->dd_data)->phba;
beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_conn_set_param,"
" param= %d\n", param);
ret = iscsi_set_param(cls_conn, param, buf, buflen); ret = iscsi_set_param(cls_conn, param, buf, buflen);
if (ret) if (ret)
return ret; return ret;
...@@ -593,7 +625,9 @@ static int beiscsi_get_initname(char *buf, struct beiscsi_hba *phba) ...@@ -593,7 +625,9 @@ static int beiscsi_get_initname(char *buf, struct beiscsi_hba *phba)
tag = be_cmd_get_initname(phba); tag = be_cmd_get_initname(phba);
if (!tag) { if (!tag) {
SE_DEBUG(DBG_LVL_1, "Getting Initiator Name Failed\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Getting Initiator Name Failed\n");
return -EBUSY; return -EBUSY;
} else } else
wait_event_interruptible(phba->ctrl.mcc_wait[tag], wait_event_interruptible(phba->ctrl.mcc_wait[tag],
...@@ -604,9 +638,12 @@ static int beiscsi_get_initname(char *buf, struct beiscsi_hba *phba) ...@@ -604,9 +638,12 @@ static int beiscsi_get_initname(char *buf, struct beiscsi_hba *phba)
status = phba->ctrl.mcc_numtag[tag] & 0x000000FF; status = phba->ctrl.mcc_numtag[tag] & 0x000000FF;
if (status || extd_status) { if (status || extd_status) {
SE_DEBUG(DBG_LVL_1, "MailBox Command Failed with " beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BS_%d : MailBox Command Failed with "
"status = %d extd_status = %d\n", "status = %d extd_status = %d\n",
status, extd_status); status, extd_status);
free_mcc_tag(&phba->ctrl, tag); free_mcc_tag(&phba->ctrl, tag);
return -EAGAIN; return -EAGAIN;
} }
...@@ -650,7 +687,9 @@ static int beiscsi_get_port_speed(struct Scsi_Host *shost) ...@@ -650,7 +687,9 @@ static int beiscsi_get_port_speed(struct Scsi_Host *shost)
tag = be_cmd_get_port_speed(phba); tag = be_cmd_get_port_speed(phba);
if (!tag) { if (!tag) {
SE_DEBUG(DBG_LVL_1, "Getting Port Speed Failed\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Getting Port Speed Failed\n");
return -EBUSY; return -EBUSY;
} else } else
wait_event_interruptible(phba->ctrl.mcc_wait[tag], wait_event_interruptible(phba->ctrl.mcc_wait[tag],
...@@ -661,9 +700,12 @@ static int beiscsi_get_port_speed(struct Scsi_Host *shost) ...@@ -661,9 +700,12 @@ static int beiscsi_get_port_speed(struct Scsi_Host *shost)
status = phba->ctrl.mcc_numtag[tag] & 0x000000FF; status = phba->ctrl.mcc_numtag[tag] & 0x000000FF;
if (status || extd_status) { if (status || extd_status) {
SE_DEBUG(DBG_LVL_1, "MailBox Command Failed with " beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BS_%d : MailBox Command Failed with "
"status = %d extd_status = %d\n", "status = %d extd_status = %d\n",
status, extd_status); status, extd_status);
free_mcc_tag(&phba->ctrl, tag); free_mcc_tag(&phba->ctrl, tag);
return -EAGAIN; return -EAGAIN;
} }
...@@ -704,20 +746,24 @@ int beiscsi_get_host_param(struct Scsi_Host *shost, ...@@ -704,20 +746,24 @@ int beiscsi_get_host_param(struct Scsi_Host *shost,
struct beiscsi_hba *phba = iscsi_host_priv(shost); struct beiscsi_hba *phba = iscsi_host_priv(shost);
int status = 0; int status = 0;
SE_DEBUG(DBG_LVL_8, "In beiscsi_get_host_param, param= %d\n", param); beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_get_host_param,"
" param= %d\n", param);
switch (param) { switch (param) {
case ISCSI_HOST_PARAM_HWADDRESS: case ISCSI_HOST_PARAM_HWADDRESS:
status = beiscsi_get_macaddr(buf, phba); status = beiscsi_get_macaddr(buf, phba);
if (status < 0) { if (status < 0) {
SE_DEBUG(DBG_LVL_1, "beiscsi_get_macaddr Failed\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : beiscsi_get_macaddr Failed\n");
return status; return status;
} }
break; break;
case ISCSI_HOST_PARAM_INITIATOR_NAME: case ISCSI_HOST_PARAM_INITIATOR_NAME:
status = beiscsi_get_initname(buf, phba); status = beiscsi_get_initname(buf, phba);
if (status < 0) { if (status < 0) {
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"Retreiving Initiator Name Failed\n"); "BS_%d : Retreiving Initiator Name Failed\n");
return status; return status;
} }
break; break;
...@@ -728,8 +774,8 @@ int beiscsi_get_host_param(struct Scsi_Host *shost, ...@@ -728,8 +774,8 @@ int beiscsi_get_host_param(struct Scsi_Host *shost,
case ISCSI_HOST_PARAM_PORT_SPEED: case ISCSI_HOST_PARAM_PORT_SPEED:
status = beiscsi_get_port_speed(shost); status = beiscsi_get_port_speed(shost);
if (status) { if (status) {
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"Retreiving Port Speed Failed\n"); "BS_%d : Retreiving Port Speed Failed\n");
return status; return status;
} }
status = sprintf(buf, "%s\n", iscsi_get_port_speed_name(shost)); status = sprintf(buf, "%s\n", iscsi_get_port_speed_name(shost));
...@@ -768,8 +814,12 @@ void beiscsi_conn_get_stats(struct iscsi_cls_conn *cls_conn, ...@@ -768,8 +814,12 @@ void beiscsi_conn_get_stats(struct iscsi_cls_conn *cls_conn,
struct iscsi_stats *stats) struct iscsi_stats *stats)
{ {
struct iscsi_conn *conn = cls_conn->dd_data; struct iscsi_conn *conn = cls_conn->dd_data;
struct beiscsi_hba *phba = NULL;
phba = ((struct beiscsi_conn *)conn->dd_data)->phba;
beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_conn_get_stats\n");
SE_DEBUG(DBG_LVL_8, "In beiscsi_conn_get_stats\n");
stats->txdata_octets = conn->txdata_octets; stats->txdata_octets = conn->txdata_octets;
stats->rxdata_octets = conn->rxdata_octets; stats->rxdata_octets = conn->rxdata_octets;
stats->dataout_pdus = conn->dataout_pdus_cnt; stats->dataout_pdus = conn->dataout_pdus_cnt;
...@@ -829,11 +879,16 @@ int beiscsi_conn_start(struct iscsi_cls_conn *cls_conn) ...@@ -829,11 +879,16 @@ int beiscsi_conn_start(struct iscsi_cls_conn *cls_conn)
struct beiscsi_endpoint *beiscsi_ep; struct beiscsi_endpoint *beiscsi_ep;
struct beiscsi_offload_params params; struct beiscsi_offload_params params;
SE_DEBUG(DBG_LVL_8, "In beiscsi_conn_start\n"); beiscsi_log(beiscsi_conn->phba, KERN_INFO,
BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_conn_start\n");
memset(&params, 0, sizeof(struct beiscsi_offload_params)); memset(&params, 0, sizeof(struct beiscsi_offload_params));
beiscsi_ep = beiscsi_conn->ep; beiscsi_ep = beiscsi_conn->ep;
if (!beiscsi_ep) if (!beiscsi_ep)
SE_DEBUG(DBG_LVL_1, "In beiscsi_conn_start , no beiscsi_ep\n"); beiscsi_log(beiscsi_conn->phba, KERN_ERR,
BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_conn_start , no beiscsi_ep\n");
beiscsi_conn->login_in_progress = 0; beiscsi_conn->login_in_progress = 0;
beiscsi_set_params_for_offld(beiscsi_conn, &params); beiscsi_set_params_for_offld(beiscsi_conn, &params);
...@@ -907,19 +962,27 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep, ...@@ -907,19 +962,27 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
unsigned int tag, wrb_num; unsigned int tag, wrb_num;
int ret = -ENOMEM; int ret = -ENOMEM;
SE_DEBUG(DBG_LVL_8, "In beiscsi_open_conn\n"); beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_open_conn\n");
beiscsi_ep->ep_cid = beiscsi_get_cid(phba); beiscsi_ep->ep_cid = beiscsi_get_cid(phba);
if (beiscsi_ep->ep_cid == 0xFFFF) { if (beiscsi_ep->ep_cid == 0xFFFF) {
SE_DEBUG(DBG_LVL_1, "No free cid available\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : No free cid available\n");
return ret; return ret;
} }
SE_DEBUG(DBG_LVL_8, "In beiscsi_open_conn, ep_cid=%d\n",
beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_open_conn, ep_cid=%d\n",
beiscsi_ep->ep_cid); beiscsi_ep->ep_cid);
phba->ep_array[beiscsi_ep->ep_cid - phba->ep_array[beiscsi_ep->ep_cid -
phba->fw_config.iscsi_cid_start] = ep; phba->fw_config.iscsi_cid_start] = ep;
if (beiscsi_ep->ep_cid > (phba->fw_config.iscsi_cid_start + if (beiscsi_ep->ep_cid > (phba->fw_config.iscsi_cid_start +
phba->params.cxns_per_ctrl * 2)) { phba->params.cxns_per_ctrl * 2)) {
SE_DEBUG(DBG_LVL_1, "Failed in allocate iscsi cid\n");
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Failed in allocate iscsi cid\n");
goto free_ep; goto free_ep;
} }
...@@ -928,9 +991,11 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep, ...@@ -928,9 +991,11 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
sizeof(struct tcp_connect_and_offload_in), sizeof(struct tcp_connect_and_offload_in),
&nonemb_cmd.dma); &nonemb_cmd.dma);
if (nonemb_cmd.va == NULL) { if (nonemb_cmd.va == NULL) {
SE_DEBUG(DBG_LVL_1,
"Failed to allocate memory for mgmt_open_connection" beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"\n"); "BS_%d : Failed to allocate memory for"
" mgmt_open_connection\n");
beiscsi_put_cid(phba, beiscsi_ep->ep_cid); beiscsi_put_cid(phba, beiscsi_ep->ep_cid);
return -ENOMEM; return -ENOMEM;
} }
...@@ -938,9 +1003,10 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep, ...@@ -938,9 +1003,10 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
memset(nonemb_cmd.va, 0, nonemb_cmd.size); memset(nonemb_cmd.va, 0, nonemb_cmd.size);
tag = mgmt_open_connection(phba, dst_addr, beiscsi_ep, &nonemb_cmd); tag = mgmt_open_connection(phba, dst_addr, beiscsi_ep, &nonemb_cmd);
if (!tag) { if (!tag) {
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"mgmt_open_connection Failed for cid=%d\n", "BS_%d : mgmt_open_connection Failed for cid=%d\n",
beiscsi_ep->ep_cid); beiscsi_ep->ep_cid);
beiscsi_put_cid(phba, beiscsi_ep->ep_cid); beiscsi_put_cid(phba, beiscsi_ep->ep_cid);
pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size, pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma); nonemb_cmd.va, nonemb_cmd.dma);
...@@ -953,9 +1019,12 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep, ...@@ -953,9 +1019,12 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
extd_status = (phba->ctrl.mcc_numtag[tag] & 0x0000FF00) >> 8; extd_status = (phba->ctrl.mcc_numtag[tag] & 0x0000FF00) >> 8;
status = phba->ctrl.mcc_numtag[tag] & 0x000000FF; status = phba->ctrl.mcc_numtag[tag] & 0x000000FF;
if (status || extd_status) { if (status || extd_status) {
SE_DEBUG(DBG_LVL_1, "mgmt_open_connection Failed" beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BS_%d : mgmt_open_connection Failed"
" status = %d extd_status = %d\n", " status = %d extd_status = %d\n",
status, extd_status); status, extd_status);
free_mcc_tag(&phba->ctrl, tag); free_mcc_tag(&phba->ctrl, tag);
pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size, pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma); nonemb_cmd.va, nonemb_cmd.dma);
...@@ -968,7 +1037,8 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep, ...@@ -968,7 +1037,8 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
beiscsi_ep = ep->dd_data; beiscsi_ep = ep->dd_data;
beiscsi_ep->fw_handle = ptcpcnct_out->connection_handle; beiscsi_ep->fw_handle = ptcpcnct_out->connection_handle;
beiscsi_ep->cid_vld = 1; beiscsi_ep->cid_vld = 1;
SE_DEBUG(DBG_LVL_8, "mgmt_open_connection Success\n"); beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : mgmt_open_connection Success\n");
} }
pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size, pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma); nonemb_cmd.va, nonemb_cmd.dma);
...@@ -996,18 +1066,19 @@ beiscsi_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr, ...@@ -996,18 +1066,19 @@ beiscsi_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
struct iscsi_endpoint *ep; struct iscsi_endpoint *ep;
int ret; int ret;
SE_DEBUG(DBG_LVL_8, "In beiscsi_ep_connect\n");
if (shost) if (shost)
phba = iscsi_host_priv(shost); phba = iscsi_host_priv(shost);
else { else {
ret = -ENXIO; ret = -ENXIO;
SE_DEBUG(DBG_LVL_1, "shost is NULL\n"); printk(KERN_ERR
"beiscsi_ep_connect shost is NULL\n");
return ERR_PTR(ret); return ERR_PTR(ret);
} }
if (phba->state != BE_ADAPTER_UP) { if (phba->state != BE_ADAPTER_UP) {
ret = -EBUSY; ret = -EBUSY;
SE_DEBUG(DBG_LVL_1, "The Adapter state is Not UP\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : The Adapter state is Not UP\n");
return ERR_PTR(ret); return ERR_PTR(ret);
} }
...@@ -1022,7 +1093,8 @@ beiscsi_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr, ...@@ -1022,7 +1093,8 @@ beiscsi_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
beiscsi_ep->openiscsi_ep = ep; beiscsi_ep->openiscsi_ep = ep;
ret = beiscsi_open_conn(ep, NULL, dst_addr, non_blocking); ret = beiscsi_open_conn(ep, NULL, dst_addr, non_blocking);
if (ret) { if (ret) {
SE_DEBUG(DBG_LVL_1, "Failed in beiscsi_open_conn\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Failed in beiscsi_open_conn\n");
goto free_ep; goto free_ep;
} }
...@@ -1044,7 +1116,9 @@ int beiscsi_ep_poll(struct iscsi_endpoint *ep, int timeout_ms) ...@@ -1044,7 +1116,9 @@ int beiscsi_ep_poll(struct iscsi_endpoint *ep, int timeout_ms)
{ {
struct beiscsi_endpoint *beiscsi_ep = ep->dd_data; struct beiscsi_endpoint *beiscsi_ep = ep->dd_data;
SE_DEBUG(DBG_LVL_8, "In beiscsi_ep_poll\n"); beiscsi_log(beiscsi_ep->phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_ep_poll\n");
if (beiscsi_ep->cid_vld == 1) if (beiscsi_ep->cid_vld == 1)
return 1; return 1;
else else
...@@ -1064,8 +1138,10 @@ static int beiscsi_close_conn(struct beiscsi_endpoint *beiscsi_ep, int flag) ...@@ -1064,8 +1138,10 @@ static int beiscsi_close_conn(struct beiscsi_endpoint *beiscsi_ep, int flag)
tag = mgmt_upload_connection(phba, beiscsi_ep->ep_cid, flag); tag = mgmt_upload_connection(phba, beiscsi_ep->ep_cid, flag);
if (!tag) { if (!tag) {
SE_DEBUG(DBG_LVL_8, "upload failed for cid 0x%x\n", beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : upload failed for cid 0x%x\n",
beiscsi_ep->ep_cid); beiscsi_ep->ep_cid);
ret = -EAGAIN; ret = -EAGAIN;
} else { } else {
wait_event_interruptible(phba->ctrl.mcc_wait[tag], wait_event_interruptible(phba->ctrl.mcc_wait[tag],
...@@ -1086,7 +1162,8 @@ static int beiscsi_unbind_conn_to_cid(struct beiscsi_hba *phba, ...@@ -1086,7 +1162,8 @@ static int beiscsi_unbind_conn_to_cid(struct beiscsi_hba *phba,
if (phba->conn_table[cid]) if (phba->conn_table[cid])
phba->conn_table[cid] = NULL; phba->conn_table[cid] = NULL;
else { else {
SE_DEBUG(DBG_LVL_8, "Connection table Not occupied.\n"); beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : Connection table Not occupied.\n");
return -EINVAL; return -EINVAL;
} }
return 0; return 0;
...@@ -1108,26 +1185,30 @@ void beiscsi_ep_disconnect(struct iscsi_endpoint *ep) ...@@ -1108,26 +1185,30 @@ void beiscsi_ep_disconnect(struct iscsi_endpoint *ep)
beiscsi_ep = ep->dd_data; beiscsi_ep = ep->dd_data;
phba = beiscsi_ep->phba; phba = beiscsi_ep->phba;
SE_DEBUG(DBG_LVL_8, "In beiscsi_ep_disconnect for ep_cid = %d\n", beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_ep_disconnect for ep_cid = %d\n",
beiscsi_ep->ep_cid); beiscsi_ep->ep_cid);
if (!beiscsi_ep->conn) { if (!beiscsi_ep->conn) {
SE_DEBUG(DBG_LVL_8, "In beiscsi_ep_disconnect, no " beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_ep_disconnect, no "
"beiscsi_ep\n"); "beiscsi_ep\n");
return; return;
} }
beiscsi_conn = beiscsi_ep->conn; beiscsi_conn = beiscsi_ep->conn;
iscsi_suspend_queue(beiscsi_conn->conn); iscsi_suspend_queue(beiscsi_conn->conn);
SE_DEBUG(DBG_LVL_8, "In beiscsi_ep_disconnect ep_cid = %d\n", beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : In beiscsi_ep_disconnect ep_cid = %d\n",
beiscsi_ep->ep_cid); beiscsi_ep->ep_cid);
tag = mgmt_invalidate_connection(phba, beiscsi_ep, tag = mgmt_invalidate_connection(phba, beiscsi_ep,
beiscsi_ep->ep_cid, 1, beiscsi_ep->ep_cid, 1,
savecfg_flag); savecfg_flag);
if (!tag) { if (!tag) {
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"mgmt_invalidate_connection Failed for cid=%d\n", "BS_%d : mgmt_invalidate_connection"
" Failed for cid=%d\n",
beiscsi_ep->ep_cid); beiscsi_ep->ep_cid);
} else { } else {
wait_event_interruptible(phba->ctrl.mcc_wait[tag], wait_event_interruptible(phba->ctrl.mcc_wait[tag],
......
此差异已折叠。
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/if_ether.h> #include <linux/if_ether.h>
#include <linux/in.h> #include <linux/in.h>
#include <linux/ctype.h>
#include <linux/module.h>
#include <scsi/scsi.h> #include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h> #include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h> #include <scsi/scsi_device.h>
...@@ -85,23 +87,6 @@ ...@@ -85,23 +87,6 @@
#define IIOC_SCSI_DATA 0x05 /* Write Operation */ #define IIOC_SCSI_DATA 0x05 /* Write Operation */
#define INVALID_SESS_HANDLE 0xFFFFFFFF #define INVALID_SESS_HANDLE 0xFFFFFFFF
#define DBG_LVL 0x00000001
#define DBG_LVL_1 0x00000001
#define DBG_LVL_2 0x00000002
#define DBG_LVL_3 0x00000004
#define DBG_LVL_4 0x00000008
#define DBG_LVL_5 0x00000010
#define DBG_LVL_6 0x00000020
#define DBG_LVL_7 0x00000040
#define DBG_LVL_8 0x00000080
#define SE_DEBUG(debug_mask, fmt, args...) \
do { \
if (debug_mask & DBG_LVL) { \
printk(KERN_ERR "(%s():%d):", __func__, __LINE__);\
printk(fmt, ##args); \
} \
} while (0);
#define BE_ADAPTER_UP 0x00000000 #define BE_ADAPTER_UP 0x00000000
#define BE_ADAPTER_LINK_DOWN 0x00000001 #define BE_ADAPTER_LINK_DOWN 0x00000001
...@@ -352,6 +337,8 @@ struct beiscsi_hba { ...@@ -352,6 +337,8 @@ struct beiscsi_hba {
struct mgmt_session_info boot_sess; struct mgmt_session_info boot_sess;
struct invalidate_command_table inv_tbl[128]; struct invalidate_command_table inv_tbl[128];
unsigned int attr_log_enable;
}; };
struct beiscsi_session { struct beiscsi_session {
...@@ -861,4 +848,20 @@ struct hwi_context_memory { ...@@ -861,4 +848,20 @@ struct hwi_context_memory {
struct hwi_async_pdu_context *pasync_ctx; struct hwi_async_pdu_context *pasync_ctx;
}; };
/* Logging related definitions */
#define BEISCSI_LOG_INIT 0x0001 /* Initialization events */
#define BEISCSI_LOG_MBOX 0x0002 /* Mailbox Events */
#define BEISCSI_LOG_MISC 0x0004 /* Miscllaneous Events */
#define BEISCSI_LOG_EH 0x0008 /* Error Handler */
#define BEISCSI_LOG_IO 0x0010 /* IO Code Path */
#define BEISCSI_LOG_CONFIG 0x0020 /* CONFIG Code Path */
#define beiscsi_log(phba, level, mask, fmt, arg...) \
do { \
uint32_t log_value = phba->attr_log_enable; \
if (((mask) & log_value) || (level[1] <= '3')) \
shost_printk(level, phba->shost, \
fmt, __LINE__, ##arg); \
} while (0)
#endif #endif
...@@ -42,7 +42,10 @@ unsigned int mgmt_reopen_session(struct beiscsi_hba *phba, ...@@ -42,7 +42,10 @@ unsigned int mgmt_reopen_session(struct beiscsi_hba *phba,
struct be_cmd_reopen_session_req *req; struct be_cmd_reopen_session_req *req;
unsigned int tag = 0; unsigned int tag = 0;
SE_DEBUG(DBG_LVL_8, "In bescsi_get_boot_target\n"); beiscsi_log(phba, KERN_INFO,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BG_%d : In bescsi_get_boot_target\n");
spin_lock(&ctrl->mbox_lock); spin_lock(&ctrl->mbox_lock);
tag = alloc_mcc_tag(phba); tag = alloc_mcc_tag(phba);
if (!tag) { if (!tag) {
...@@ -74,7 +77,10 @@ unsigned int mgmt_get_boot_target(struct beiscsi_hba *phba) ...@@ -74,7 +77,10 @@ unsigned int mgmt_get_boot_target(struct beiscsi_hba *phba)
struct be_cmd_get_boot_target_req *req; struct be_cmd_get_boot_target_req *req;
unsigned int tag = 0; unsigned int tag = 0;
SE_DEBUG(DBG_LVL_8, "In bescsi_get_boot_target\n"); beiscsi_log(phba, KERN_INFO,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BG_%d : In bescsi_get_boot_target\n");
spin_lock(&ctrl->mbox_lock); spin_lock(&ctrl->mbox_lock);
tag = alloc_mcc_tag(phba); tag = alloc_mcc_tag(phba);
if (!tag) { if (!tag) {
...@@ -106,7 +112,10 @@ unsigned int mgmt_get_session_info(struct beiscsi_hba *phba, ...@@ -106,7 +112,10 @@ unsigned int mgmt_get_session_info(struct beiscsi_hba *phba,
struct be_cmd_get_session_resp *resp; struct be_cmd_get_session_resp *resp;
struct be_sge *sge; struct be_sge *sge;
SE_DEBUG(DBG_LVL_8, "In beiscsi_get_session_info\n"); beiscsi_log(phba, KERN_INFO,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BG_%d : In beiscsi_get_session_info\n");
spin_lock(&ctrl->mbox_lock); spin_lock(&ctrl->mbox_lock);
tag = alloc_mcc_tag(phba); tag = alloc_mcc_tag(phba);
if (!tag) { if (!tag) {
...@@ -165,16 +174,16 @@ int mgmt_get_fw_config(struct be_ctrl_info *ctrl, ...@@ -165,16 +174,16 @@ int mgmt_get_fw_config(struct be_ctrl_info *ctrl,
phba->fw_config.iscsi_cid_count = phba->fw_config.iscsi_cid_count =
pfw_cfg->ulp[0].sq_count; pfw_cfg->ulp[0].sq_count;
if (phba->fw_config.iscsi_cid_count > (BE2_MAX_SESSIONS / 2)) { if (phba->fw_config.iscsi_cid_count > (BE2_MAX_SESSIONS / 2)) {
SE_DEBUG(DBG_LVL_8, beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT,
"FW reported MAX CXNS as %d\t" "BG_%d : FW reported MAX CXNS as %d\t"
"Max Supported = %d.\n", "Max Supported = %d.\n",
phba->fw_config.iscsi_cid_count, phba->fw_config.iscsi_cid_count,
BE2_MAX_SESSIONS); BE2_MAX_SESSIONS);
phba->fw_config.iscsi_cid_count = BE2_MAX_SESSIONS / 2; phba->fw_config.iscsi_cid_count = BE2_MAX_SESSIONS / 2;
} }
} else { } else {
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_INIT,
"Failed in mgmt_get_fw_config\n"); "BG_%d : Failed in mgmt_get_fw_config\n");
} }
spin_unlock(&ctrl->mbox_lock); spin_unlock(&ctrl->mbox_lock);
...@@ -194,9 +203,9 @@ int mgmt_check_supported_fw(struct be_ctrl_info *ctrl, ...@@ -194,9 +203,9 @@ int mgmt_check_supported_fw(struct be_ctrl_info *ctrl,
sizeof(struct be_mgmt_controller_attributes), sizeof(struct be_mgmt_controller_attributes),
&nonemb_cmd.dma); &nonemb_cmd.dma);
if (nonemb_cmd.va == NULL) { if (nonemb_cmd.va == NULL) {
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"Failed to allocate memory for mgmt_check_supported_fw" "BG_%d : Failed to allocate memory for "
"\n"); "mgmt_check_supported_fw\n");
return -ENOMEM; return -ENOMEM;
} }
nonemb_cmd.size = sizeof(struct be_mgmt_controller_attributes); nonemb_cmd.size = sizeof(struct be_mgmt_controller_attributes);
...@@ -213,18 +222,23 @@ int mgmt_check_supported_fw(struct be_ctrl_info *ctrl, ...@@ -213,18 +222,23 @@ int mgmt_check_supported_fw(struct be_ctrl_info *ctrl,
status = be_mbox_notify(ctrl); status = be_mbox_notify(ctrl);
if (!status) { if (!status) {
struct be_mgmt_controller_attributes_resp *resp = nonemb_cmd.va; struct be_mgmt_controller_attributes_resp *resp = nonemb_cmd.va;
SE_DEBUG(DBG_LVL_8, "Firmware version of CMD: %s\n", beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT,
resp->params.hba_attribs.flashrom_version_string); "BG_%d : Firmware Version of CMD : %s\n"
SE_DEBUG(DBG_LVL_8, "Firmware version is : %s\n", "Firmware Version is : %s\n"
resp->params.hba_attribs.firmware_version_string); "Developer Build, not performing version check...\n",
SE_DEBUG(DBG_LVL_8, resp->params.hba_attribs
"Developer Build, not performing version check...\n"); .flashrom_version_string,
resp->params.hba_attribs.
firmware_version_string);
phba->fw_config.iscsi_features = phba->fw_config.iscsi_features =
resp->params.hba_attribs.iscsi_features; resp->params.hba_attribs.iscsi_features;
SE_DEBUG(DBG_LVL_8, " phba->fw_config.iscsi_features = %d\n", beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_INIT,
"BM_%d : phba->fw_config.iscsi_features = %d\n",
phba->fw_config.iscsi_features); phba->fw_config.iscsi_features);
} else } else
SE_DEBUG(DBG_LVL_1, " Failed in mgmt_check_supported_fw\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BG_%d : Failed in mgmt_check_supported_fw\n");
spin_unlock(&ctrl->mbox_lock); spin_unlock(&ctrl->mbox_lock);
if (nonemb_cmd.va) if (nonemb_cmd.va)
pci_free_consistent(ctrl->pdev, nonemb_cmd.size, pci_free_consistent(ctrl->pdev, nonemb_cmd.size,
...@@ -273,9 +287,10 @@ unsigned int mgmt_vendor_specific_fw_cmd(struct be_ctrl_info *ctrl, ...@@ -273,9 +287,10 @@ unsigned int mgmt_vendor_specific_fw_cmd(struct be_ctrl_info *ctrl,
OPCODE_COMMON_READ_FLASH, sizeof(*req)); OPCODE_COMMON_READ_FLASH, sizeof(*req));
break; break;
default: default:
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG,
"Unsupported cmd = 0x%x\n\n", bsg_req->rqst_data. "BG_%d : Unsupported cmd = 0x%x\n\n",
h_vendor.vendor_cmd[0]); bsg_req->rqst_data.h_vendor.vendor_cmd[0]);
spin_unlock(&ctrl->mbox_lock); spin_unlock(&ctrl->mbox_lock);
return -ENOSYS; return -ENOSYS;
} }
...@@ -319,8 +334,8 @@ int mgmt_epfw_cleanup(struct beiscsi_hba *phba, unsigned short chute) ...@@ -319,8 +334,8 @@ int mgmt_epfw_cleanup(struct beiscsi_hba *phba, unsigned short chute)
status = be_mcc_notify_wait(phba); status = be_mcc_notify_wait(phba);
if (status) if (status)
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_INIT,
" mgmt_epfw_cleanup , FAILED\n"); "BG_%d : mgmt_epfw_cleanup , FAILED\n");
spin_unlock(&ctrl->mbox_lock); spin_unlock(&ctrl->mbox_lock);
return status; return status;
} }
...@@ -503,7 +518,8 @@ int mgmt_open_connection(struct beiscsi_hba *phba, ...@@ -503,7 +518,8 @@ int mgmt_open_connection(struct beiscsi_hba *phba,
&daddr_in6->sin6_addr.in6_u.u6_addr8, 16); &daddr_in6->sin6_addr.in6_u.u6_addr8, 16);
beiscsi_ep->ip_type = BE2_IPV6; beiscsi_ep->ip_type = BE2_IPV6;
} else{ } else{
shost_printk(KERN_ERR, phba->shost, "unknown addr family %d\n", beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BG_%d : unknown addr family %d\n",
dst_addr->sa_family); dst_addr->sa_family);
spin_unlock(&ctrl->mbox_lock); spin_unlock(&ctrl->mbox_lock);
free_mcc_tag(&phba->ctrl, tag); free_mcc_tag(&phba->ctrl, tag);
...@@ -515,7 +531,8 @@ int mgmt_open_connection(struct beiscsi_hba *phba, ...@@ -515,7 +531,8 @@ int mgmt_open_connection(struct beiscsi_hba *phba,
if (phba->nxt_cqid == phba->num_cpus) if (phba->nxt_cqid == phba->num_cpus)
phba->nxt_cqid = 0; phba->nxt_cqid = 0;
req->cq_id = phwi_context->be_cq[i].id; req->cq_id = phwi_context->be_cq[i].id;
SE_DEBUG(DBG_LVL_8, "i=%d cq_id=%d\n", i, req->cq_id); beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BG_%d : i=%d cq_id=%d\n", i, req->cq_id);
req->defq_id = def_hdr_id; req->defq_id = def_hdr_id;
req->hdr_ring_id = def_hdr_id; req->hdr_ring_id = def_hdr_id;
req->data_ring_id = def_data_id; req->data_ring_id = def_data_id;
...@@ -550,8 +567,8 @@ unsigned int mgmt_get_all_if_id(struct beiscsi_hba *phba) ...@@ -550,8 +567,8 @@ unsigned int mgmt_get_all_if_id(struct beiscsi_hba *phba)
if (!status) if (!status)
phba->interface_handle = pbe_allid->if_hndl_list[0]; phba->interface_handle = pbe_allid->if_hndl_list[0];
else { else {
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG,
"Failed in mgmt_get_all_if_id\n"); "BG_%d : Failed in mgmt_get_all_if_id\n");
} }
spin_unlock(&ctrl->mbox_lock); spin_unlock(&ctrl->mbox_lock);
...@@ -594,8 +611,9 @@ static int mgmt_exec_nonemb_cmd(struct beiscsi_hba *phba, ...@@ -594,8 +611,9 @@ static int mgmt_exec_nonemb_cmd(struct beiscsi_hba *phba,
extd_status = (phba->ctrl.mcc_numtag[tag] & 0x0000FF00) >> 8; extd_status = (phba->ctrl.mcc_numtag[tag] & 0x0000FF00) >> 8;
status = phba->ctrl.mcc_numtag[tag] & 0x000000FF; status = phba->ctrl.mcc_numtag[tag] & 0x000000FF;
if (status || extd_status) { if (status || extd_status) {
SE_DEBUG(DBG_LVL_1, beiscsi_log(phba, KERN_ERR,
"mgmt_exec_nonemb_cmd Failed status = %d" BEISCSI_LOG_CONFIG | BEISCSI_LOG_MBOX,
"BG_%d : mgmt_exec_nonemb_cmd Failed status = %d"
"extd_status = %d\n", status, extd_status); "extd_status = %d\n", status, extd_status);
rc = -EIO; rc = -EIO;
goto free_tag; goto free_tag;
...@@ -617,7 +635,8 @@ static int mgmt_alloc_cmd_data(struct beiscsi_hba *phba, struct be_dma_mem *cmd, ...@@ -617,7 +635,8 @@ static int mgmt_alloc_cmd_data(struct beiscsi_hba *phba, struct be_dma_mem *cmd,
{ {
cmd->va = pci_alloc_consistent(phba->ctrl.pdev, size, &cmd->dma); cmd->va = pci_alloc_consistent(phba->ctrl.pdev, size, &cmd->dma);
if (!cmd->va) { if (!cmd->va) {
SE_DEBUG(DBG_LVL_1, "Failed to allocate memory for if info\n"); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BG_%d : Failed to allocate memory for if info\n");
return -ENOMEM; return -ENOMEM;
} }
memset(cmd->va, 0, size); memset(cmd->va, 0, size);
...@@ -673,8 +692,8 @@ mgmt_static_ip_modify(struct beiscsi_hba *phba, ...@@ -673,8 +692,8 @@ mgmt_static_ip_modify(struct beiscsi_hba *phba,
rc = mgmt_exec_nonemb_cmd(phba, &nonemb_cmd, NULL, 0); rc = mgmt_exec_nonemb_cmd(phba, &nonemb_cmd, NULL, 0);
if (rc < 0) if (rc < 0)
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG,
"Failed to Modify existing IP Address\n"); "BG_%d : Failed to Modify existing IP Address\n");
return rc; return rc;
} }
...@@ -728,8 +747,8 @@ int mgmt_set_ip(struct beiscsi_hba *phba, ...@@ -728,8 +747,8 @@ int mgmt_set_ip(struct beiscsi_hba *phba,
if (boot_proto == ISCSI_BOOTPROTO_DHCP) { if (boot_proto == ISCSI_BOOTPROTO_DHCP) {
if (if_info.dhcp_state) { if (if_info.dhcp_state) {
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG,
"DHCP Already Enabled\n"); "BG_%d : DHCP Already Enabled\n");
return 0; return 0;
} }
/* The ip_param->len is 1 in DHCP case. Setting /* The ip_param->len is 1 in DHCP case. Setting
...@@ -756,8 +775,9 @@ int mgmt_set_ip(struct beiscsi_hba *phba, ...@@ -756,8 +775,9 @@ int mgmt_set_ip(struct beiscsi_hba *phba,
rc = mgmt_exec_nonemb_cmd(phba, &nonemb_cmd, NULL, 0); rc = mgmt_exec_nonemb_cmd(phba, &nonemb_cmd, NULL, 0);
if (rc < 0) { if (rc < 0) {
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING,
"Failed to Delete existing dhcp\n"); BEISCSI_LOG_CONFIG,
"BG_%d : Failed to Delete existing dhcp\n");
return rc; return rc;
} }
} }
...@@ -776,8 +796,8 @@ int mgmt_set_ip(struct beiscsi_hba *phba, ...@@ -776,8 +796,8 @@ int mgmt_set_ip(struct beiscsi_hba *phba,
memset(&gtway_addr_set, 0, sizeof(gtway_addr_set)); memset(&gtway_addr_set, 0, sizeof(gtway_addr_set));
rc = mgmt_get_gateway(phba, BE2_IPV4, &gtway_addr_set); rc = mgmt_get_gateway(phba, BE2_IPV4, &gtway_addr_set);
if (rc) { if (rc) {
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG,
"Failed to Get Gateway Addr\n"); "BG_%d : Failed to Get Gateway Addr\n");
return rc; return rc;
} }
...@@ -787,8 +807,9 @@ int mgmt_set_ip(struct beiscsi_hba *phba, ...@@ -787,8 +807,9 @@ int mgmt_set_ip(struct beiscsi_hba *phba,
IP_ACTION_DEL, IP_V4_LEN); IP_ACTION_DEL, IP_V4_LEN);
if (rc) { if (rc) {
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING,
"Failed to clear Gateway Addr Set\n"); BEISCSI_LOG_CONFIG,
"BG_%d : Failed to clear Gateway Addr Set\n");
return rc; return rc;
} }
} }
...@@ -827,8 +848,8 @@ int mgmt_set_gateway(struct beiscsi_hba *phba, ...@@ -827,8 +848,8 @@ int mgmt_set_gateway(struct beiscsi_hba *phba,
memset(&gtway_addr_set, 0, sizeof(gtway_addr_set)); memset(&gtway_addr_set, 0, sizeof(gtway_addr_set));
rt_val = mgmt_get_gateway(phba, BE2_IPV4, &gtway_addr_set); rt_val = mgmt_get_gateway(phba, BE2_IPV4, &gtway_addr_set);
if (rt_val) { if (rt_val) {
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG,
"Failed to Get Gateway Addr\n"); "BG_%d : Failed to Get Gateway Addr\n");
return rt_val; return rt_val;
} }
...@@ -837,8 +858,8 @@ int mgmt_set_gateway(struct beiscsi_hba *phba, ...@@ -837,8 +858,8 @@ int mgmt_set_gateway(struct beiscsi_hba *phba,
rt_val = mgmt_modify_gateway(phba, gtway_addr, IP_ACTION_DEL, rt_val = mgmt_modify_gateway(phba, gtway_addr, IP_ACTION_DEL,
gateway_param->len); gateway_param->len);
if (rt_val) { if (rt_val) {
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG,
"Failed to clear Gateway Addr Set\n"); "BG_%d : Failed to clear Gateway Addr Set\n");
return rt_val; return rt_val;
} }
} }
...@@ -848,8 +869,8 @@ int mgmt_set_gateway(struct beiscsi_hba *phba, ...@@ -848,8 +869,8 @@ int mgmt_set_gateway(struct beiscsi_hba *phba,
gateway_param->len); gateway_param->len);
if (rt_val) if (rt_val)
shost_printk(KERN_WARNING, phba->shost, beiscsi_log(phba, KERN_WARNING, BEISCSI_LOG_CONFIG,
"Failed to Set Gateway Addr\n"); "BG_%d : Failed to Set Gateway Addr\n");
return rt_val; return rt_val;
} }
...@@ -997,7 +1018,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba, ...@@ -997,7 +1018,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba,
/* Get the Boot Target Session Handle and Count*/ /* Get the Boot Target Session Handle and Count*/
tag = mgmt_get_boot_target(phba); tag = mgmt_get_boot_target(phba);
if (!tag) { if (!tag) {
SE_DEBUG(DBG_LVL_1, "mgmt_get_boot_target Failed\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_CONFIG | BEISCSI_LOG_INIT,
"BG_%d : Getting Boot Target Info Failed\n");
return -EAGAIN; return -EAGAIN;
} else } else
wait_event_interruptible(phba->ctrl.mcc_wait[tag], wait_event_interruptible(phba->ctrl.mcc_wait[tag],
...@@ -1007,7 +1030,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba, ...@@ -1007,7 +1030,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba,
extd_status = (phba->ctrl.mcc_numtag[tag] & 0x0000FF00) >> 8; extd_status = (phba->ctrl.mcc_numtag[tag] & 0x0000FF00) >> 8;
status = phba->ctrl.mcc_numtag[tag] & 0x000000FF; status = phba->ctrl.mcc_numtag[tag] & 0x000000FF;
if (status || extd_status) { if (status || extd_status) {
SE_DEBUG(DBG_LVL_1, "mgmt_get_boot_target Failed" beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_INIT | BEISCSI_LOG_CONFIG,
"BG_%d : mgmt_get_boot_target Failed"
" status = %d extd_status = %d\n", " status = %d extd_status = %d\n",
status, extd_status); status, extd_status);
free_mcc_tag(&phba->ctrl, tag); free_mcc_tag(&phba->ctrl, tag);
...@@ -1019,7 +1044,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba, ...@@ -1019,7 +1044,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba,
/* Check if the there are any Boot targets configured */ /* Check if the there are any Boot targets configured */
if (!boot_resp->boot_session_count) { if (!boot_resp->boot_session_count) {
SE_DEBUG(DBG_LVL_8, "No boot targets configured\n"); beiscsi_log(phba, KERN_INFO,
BEISCSI_LOG_INIT | BEISCSI_LOG_CONFIG,
"BG_%d ;No boot targets configured\n");
return -ENXIO; return -ENXIO;
} }
...@@ -1033,7 +1060,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba, ...@@ -1033,7 +1060,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba,
tag = mgmt_reopen_session(phba, BE_REOPEN_BOOT_SESSIONS, tag = mgmt_reopen_session(phba, BE_REOPEN_BOOT_SESSIONS,
INVALID_SESS_HANDLE); INVALID_SESS_HANDLE);
if (!tag) { if (!tag) {
SE_DEBUG(DBG_LVL_1, "mgmt_reopen_session Failed\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_INIT | BEISCSI_LOG_CONFIG,
"BG_%d : mgmt_reopen_session Failed\n");
return -EAGAIN; return -EAGAIN;
} else } else
wait_event_interruptible(phba->ctrl.mcc_wait[tag], wait_event_interruptible(phba->ctrl.mcc_wait[tag],
...@@ -1043,7 +1072,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba, ...@@ -1043,7 +1072,9 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba,
extd_status = (phba->ctrl.mcc_numtag[tag] & 0x0000FF00) >> 8; extd_status = (phba->ctrl.mcc_numtag[tag] & 0x0000FF00) >> 8;
status = phba->ctrl.mcc_numtag[tag] & 0x000000FF; status = phba->ctrl.mcc_numtag[tag] & 0x000000FF;
if (status || extd_status) { if (status || extd_status) {
SE_DEBUG(DBG_LVL_1, "mgmt_reopen_session Failed" beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_INIT | BEISCSI_LOG_CONFIG,
"BG_%d : mgmt_reopen_session Failed"
" status = %d extd_status = %d\n", " status = %d extd_status = %d\n",
status, extd_status); status, extd_status);
free_mcc_tag(&phba->ctrl, tag); free_mcc_tag(&phba->ctrl, tag);
...@@ -1054,6 +1085,8 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba, ...@@ -1054,6 +1085,8 @@ int be_mgmt_get_boot_shandle(struct beiscsi_hba *phba,
} while (--boot_retry); } while (--boot_retry);
/* Couldn't log into the boot target */ /* Couldn't log into the boot target */
SE_DEBUG(DBG_LVL_1, "Login to Boot Target Failed\n"); beiscsi_log(phba, KERN_ERR,
BEISCSI_LOG_INIT | BEISCSI_LOG_CONFIG,
"BG_%d : Login to Boot Target Failed\n");
return -ENXIO; return -ENXIO;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册