aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_sli.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c248
1 files changed, 102 insertions, 146 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 14fe6b000b59..2da75d85de84 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -49,9 +49,8 @@
49 lpfc_printf_log(phba, \ 49 lpfc_printf_log(phba, \
50 KERN_INFO, \ 50 KERN_INFO, \
51 LOG_MBOX | LOG_SLI, \ 51 LOG_MBOX | LOG_SLI, \
52 "%d (%d):0311 Mailbox command x%x cannot " \ 52 "(%d):0311 Mailbox command x%x cannot " \
53 "issue Data: x%x x%x x%x\n", \ 53 "issue Data: x%x x%x x%x\n", \
54 phba->brd_no, \
55 pmbox->vport ? pmbox->vport->vpi : 0, \ 54 pmbox->vport ? pmbox->vport->vpi : 0, \
56 pmbox->mb.mbxCommand, \ 55 pmbox->mb.mbxCommand, \
57 phba->pport->port_state, \ 56 phba->pport->port_state, \
@@ -231,13 +230,11 @@ lpfc_sli_ring_map(struct lpfc_hba *phba)
231 rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); 230 rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL);
232 if (rc != MBX_SUCCESS) { 231 if (rc != MBX_SUCCESS) {
233 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 232 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
234 "%d:0446 Adapter failed to init (%d), " 233 "0446 Adapter failed to init (%d), "
235 "mbxCmd x%x CFG_RING, mbxStatus x%x, " 234 "mbxCmd x%x CFG_RING, mbxStatus x%x, "
236 "ring %d\n", 235 "ring %d\n",
237 phba->brd_no, rc, 236 rc, pmbox->mbxCommand,
238 pmbox->mbxCommand, 237 pmbox->mbxStatus, i);
239 pmbox->mbxStatus,
240 i);
241 phba->link_state = LPFC_HBA_ERROR; 238 phba->link_state = LPFC_HBA_ERROR;
242 ret = -ENXIO; 239 ret = -ENXIO;
243 break; 240 break;
@@ -296,9 +293,9 @@ lpfc_sli_next_iocb_slot (struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
296 293
297 if (unlikely(pring->local_getidx >= max_cmd_idx)) { 294 if (unlikely(pring->local_getidx >= max_cmd_idx)) {
298 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 295 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
299 "%d:0315 Ring %d issue: portCmdGet %d " 296 "0315 Ring %d issue: portCmdGet %d "
300 "is bigger then cmd ring %d\n", 297 "is bigger then cmd ring %d\n",
301 phba->brd_no, pring->ringno, 298 pring->ringno,
302 pring->local_getidx, max_cmd_idx); 299 pring->local_getidx, max_cmd_idx);
303 300
304 phba->link_state = LPFC_HBA_ERROR; 301 phba->link_state = LPFC_HBA_ERROR;
@@ -380,8 +377,8 @@ lpfc_sli_next_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
380 spin_unlock_irq(&phba->hbalock); 377 spin_unlock_irq(&phba->hbalock);
381 378
382 lpfc_printf_log(phba, KERN_ERR,LOG_SLI, 379 lpfc_printf_log(phba, KERN_ERR,LOG_SLI,
383 "%d:0318 Failed to allocate IOTAG.last IOTAG is %d\n", 380 "0318 Failed to allocate IOTAG.last IOTAG is %d\n",
384 phba->brd_no, psli->last_iotag); 381 psli->last_iotag);
385 382
386 return 0; 383 return 0;
387} 384}
@@ -535,10 +532,9 @@ lpfc_sli_next_hbq_slot(struct lpfc_hba *phba, uint32_t hbqno)
535 if (unlikely(hbqp->local_hbqGetIdx >= hbqp->entry_count)) { 532 if (unlikely(hbqp->local_hbqGetIdx >= hbqp->entry_count)) {
536 lpfc_printf_log(phba, KERN_ERR, 533 lpfc_printf_log(phba, KERN_ERR,
537 LOG_SLI | LOG_VPORT, 534 LOG_SLI | LOG_VPORT,
538 "%d:1802 HBQ %d: local_hbqGetIdx " 535 "1802 HBQ %d: local_hbqGetIdx "
539 "%u is > than hbqp->entry_count %u\n", 536 "%u is > than hbqp->entry_count %u\n",
540 phba->brd_no, hbqno, 537 hbqno, hbqp->local_hbqGetIdx,
541 hbqp->local_hbqGetIdx,
542 hbqp->entry_count); 538 hbqp->entry_count);
543 539
544 phba->link_state = LPFC_HBA_ERROR; 540 phba->link_state = LPFC_HBA_ERROR;
@@ -666,9 +662,8 @@ lpfc_sli_hbqbuf_find(struct lpfc_hba *phba, uint32_t tag)
666 } 662 }
667 } 663 }
668 lpfc_printf_log(phba, KERN_ERR, LOG_SLI | LOG_VPORT, 664 lpfc_printf_log(phba, KERN_ERR, LOG_SLI | LOG_VPORT,
669 "%d:1803 Bad hbq tag. Data: x%x x%x\n", 665 "1803 Bad hbq tag. Data: x%x x%x\n",
670 phba->brd_no, tag, 666 tag, lpfc_hbq_defs[tag >> 16]->buffer_count);
671 lpfc_hbq_defs[tag >> 16]->buffer_count);
672 return NULL; 667 return NULL;
673} 668}
674 669
@@ -845,12 +840,10 @@ lpfc_sli_handle_mb_event(struct lpfc_hba *phba)
845 */ 840 */
846 if (lpfc_sli_chk_mbx_command(pmbox->mbxCommand) == 841 if (lpfc_sli_chk_mbx_command(pmbox->mbxCommand) ==
847 MBX_SHUTDOWN) { 842 MBX_SHUTDOWN) {
848
849 /* Unknow mailbox command compl */ 843 /* Unknow mailbox command compl */
850 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, 844 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI,
851 "%d (%d):0323 Unknown Mailbox command " 845 "(%d):0323 Unknown Mailbox command "
852 "%x Cmpl\n", 846 "%x Cmpl\n",
853 phba->brd_no,
854 pmb->vport ? pmb->vport->vpi : 0, 847 pmb->vport ? pmb->vport->vpi : 0,
855 pmbox->mbxCommand); 848 pmbox->mbxCommand);
856 phba->link_state = LPFC_HBA_ERROR; 849 phba->link_state = LPFC_HBA_ERROR;
@@ -865,10 +858,9 @@ lpfc_sli_handle_mb_event(struct lpfc_hba *phba)
865 /* Mbox cmd cmpl error - RETRYing */ 858 /* Mbox cmd cmpl error - RETRYing */
866 lpfc_printf_log(phba, KERN_INFO, 859 lpfc_printf_log(phba, KERN_INFO,
867 LOG_MBOX | LOG_SLI, 860 LOG_MBOX | LOG_SLI,
868 "%d (%d):0305 Mbox cmd cmpl " 861 "(%d):0305 Mbox cmd cmpl "
869 "error - RETRYing Data: x%x " 862 "error - RETRYing Data: x%x "
870 "x%x x%x x%x\n", 863 "x%x x%x x%x\n",
871 phba->brd_no,
872 pmb->vport ? pmb->vport->vpi :0, 864 pmb->vport ? pmb->vport->vpi :0,
873 pmbox->mbxCommand, 865 pmbox->mbxCommand,
874 pmbox->mbxStatus, 866 pmbox->mbxStatus,
@@ -887,9 +879,8 @@ lpfc_sli_handle_mb_event(struct lpfc_hba *phba)
887 879
888 /* Mailbox cmd <cmd> Cmpl <cmpl> */ 880 /* Mailbox cmd <cmd> Cmpl <cmpl> */
889 lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, 881 lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI,
890 "%d (%d):0307 Mailbox cmd x%x Cmpl x%p " 882 "(%d):0307 Mailbox cmd x%x Cmpl x%p "
891 "Data: x%x x%x x%x x%x x%x x%x x%x x%x x%x\n", 883 "Data: x%x x%x x%x x%x x%x x%x x%x x%x x%x\n",
892 phba->brd_no,
893 pmb->vport ? pmb->vport->vpi : 0, 884 pmb->vport ? pmb->vport->vpi : 0,
894 pmbox->mbxCommand, 885 pmbox->mbxCommand,
895 pmb->mbox_cmpl, 886 pmb->mbox_cmpl,
@@ -1004,12 +995,9 @@ lpfc_sli_process_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
1004 /* Ring <ringno> handler: unexpected 995 /* Ring <ringno> handler: unexpected
1005 Rctl <Rctl> Type <Type> received */ 996 Rctl <Rctl> Type <Type> received */
1006 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, 997 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI,
1007 "%d:0313 Ring %d handler: unexpected Rctl x%x " 998 "0313 Ring %d handler: unexpected Rctl x%x "
1008 "Type x%x received\n", 999 "Type x%x received\n",
1009 phba->brd_no, 1000 pring->ringno, Rctl, Type);
1010 pring->ringno,
1011 Rctl,
1012 Type);
1013 } 1001 }
1014 return 1; 1002 return 1;
1015} 1003}
@@ -1032,10 +1020,9 @@ lpfc_sli_iocbq_lookup(struct lpfc_hba *phba,
1032 } 1020 }
1033 1021
1034 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 1022 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
1035 "%d:0317 iotag x%x is out off " 1023 "0317 iotag x%x is out off "
1036 "range: max iotag x%x wd0 x%x\n", 1024 "range: max iotag x%x wd0 x%x\n",
1037 phba->brd_no, iotag, 1025 iotag, phba->sli.last_iotag,
1038 phba->sli.last_iotag,
1039 *(((uint32_t *) &prspiocb->iocb) + 7)); 1026 *(((uint32_t *) &prspiocb->iocb) + 7));
1040 return NULL; 1027 return NULL;
1041} 1028}
@@ -1083,18 +1070,16 @@ lpfc_sli_process_sol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
1083 * Ring <ringno> handler: unexpected completion IoTag 1070 * Ring <ringno> handler: unexpected completion IoTag
1084 * <IoTag> 1071 * <IoTag>
1085 */ 1072 */
1086 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, 1073 lpfc_printf_vlog(cmdiocbp->vport, KERN_WARNING, LOG_SLI,
1087 "%d (%d):0322 Ring %d handler: " 1074 "0322 Ring %d handler: "
1088 "unexpected completion IoTag x%x " 1075 "unexpected completion IoTag x%x "
1089 "Data: x%x x%x x%x x%x\n", 1076 "Data: x%x x%x x%x x%x\n",
1090 phba->brd_no, 1077 pring->ringno,
1091 cmdiocbp->vport->vpi, 1078 saveq->iocb.ulpIoTag,
1092 pring->ringno, 1079 saveq->iocb.ulpStatus,
1093 saveq->iocb.ulpIoTag, 1080 saveq->iocb.un.ulpWord[4],
1094 saveq->iocb.ulpStatus, 1081 saveq->iocb.ulpCommand,
1095 saveq->iocb.un.ulpWord[4], 1082 saveq->iocb.ulpContext);
1096 saveq->iocb.ulpCommand,
1097 saveq->iocb.ulpContext);
1098 } 1083 }
1099 } 1084 }
1100 1085
@@ -1112,10 +1097,9 @@ lpfc_sli_rsp_pointers_error(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
1112 * rsp ring <portRspMax> 1097 * rsp ring <portRspMax>
1113 */ 1098 */
1114 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 1099 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
1115 "%d:0312 Ring %d handler: portRspPut %d " 1100 "0312 Ring %d handler: portRspPut %d "
1116 "is bigger then rsp ring %d\n", 1101 "is bigger then rsp ring %d\n",
1117 phba->brd_no, pring->ringno, 1102 pring->ringno, le32_to_cpu(pgp->rspPutInx),
1118 le32_to_cpu(pgp->rspPutInx),
1119 pring->numRiocb); 1103 pring->numRiocb);
1120 1104
1121 phba->link_state = LPFC_HBA_ERROR; 1105 phba->link_state = LPFC_HBA_ERROR;
@@ -1185,9 +1169,9 @@ void lpfc_sli_poll_fcp_ring(struct lpfc_hba *phba)
1185 if (unlikely(irsp->ulpStatus)) { 1169 if (unlikely(irsp->ulpStatus)) {
1186 /* Rsp ring <ringno> error: IOCB */ 1170 /* Rsp ring <ringno> error: IOCB */
1187 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, 1171 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI,
1188 "%d:0326 Rsp Ring %d error: IOCB Data: " 1172 "0326 Rsp Ring %d error: IOCB Data: "
1189 "x%x x%x x%x x%x x%x x%x x%x x%x\n", 1173 "x%x x%x x%x x%x x%x x%x x%x x%x\n",
1190 phba->brd_no, pring->ringno, 1174 pring->ringno,
1191 irsp->un.ulpWord[0], 1175 irsp->un.ulpWord[0],
1192 irsp->un.ulpWord[1], 1176 irsp->un.ulpWord[1],
1193 irsp->un.ulpWord[2], 1177 irsp->un.ulpWord[2],
@@ -1207,9 +1191,9 @@ void lpfc_sli_poll_fcp_ring(struct lpfc_hba *phba)
1207 */ 1191 */
1208 if (unlikely(irsp->ulpCommand == CMD_XRI_ABORTED_CX)) { 1192 if (unlikely(irsp->ulpCommand == CMD_XRI_ABORTED_CX)) {
1209 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, 1193 lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
1210 "%d:0314 IOCB cmd 0x%x" 1194 "0314 IOCB cmd 0x%x "
1211 " processed. Skipping" 1195 "processed. Skipping "
1212 " completion", phba->brd_no, 1196 "completion",
1213 irsp->ulpCommand); 1197 irsp->ulpCommand);
1214 break; 1198 break;
1215 } 1199 }
@@ -1234,10 +1218,9 @@ void lpfc_sli_poll_fcp_ring(struct lpfc_hba *phba)
1234 } else { 1218 } else {
1235 /* Unknown IOCB command */ 1219 /* Unknown IOCB command */
1236 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 1220 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
1237 "%d:0321 Unknown IOCB command " 1221 "0321 Unknown IOCB command "
1238 "Data: x%x, x%x x%x x%x x%x\n", 1222 "Data: x%x, x%x x%x x%x x%x\n",
1239 phba->brd_no, type, 1223 type, irsp->ulpCommand,
1240 irsp->ulpCommand,
1241 irsp->ulpStatus, 1224 irsp->ulpStatus,
1242 irsp->ulpIoTag, 1225 irsp->ulpIoTag,
1243 irsp->ulpContext); 1226 irsp->ulpContext);
@@ -1361,9 +1344,9 @@ lpfc_sli_handle_fast_ring_event(struct lpfc_hba *phba,
1361 1344
1362 /* Rsp ring <ringno> error: IOCB */ 1345 /* Rsp ring <ringno> error: IOCB */
1363 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, 1346 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI,
1364 "%d:0336 Rsp Ring %d error: IOCB Data: " 1347 "0336 Rsp Ring %d error: IOCB Data: "
1365 "x%x x%x x%x x%x x%x x%x x%x x%x\n", 1348 "x%x x%x x%x x%x x%x x%x x%x x%x\n",
1366 phba->brd_no, pring->ringno, 1349 pring->ringno,
1367 irsp->un.ulpWord[0], 1350 irsp->un.ulpWord[0],
1368 irsp->un.ulpWord[1], 1351 irsp->un.ulpWord[1],
1369 irsp->un.ulpWord[2], 1352 irsp->un.ulpWord[2],
@@ -1383,10 +1366,9 @@ lpfc_sli_handle_fast_ring_event(struct lpfc_hba *phba,
1383 */ 1366 */
1384 if (unlikely(irsp->ulpCommand == CMD_XRI_ABORTED_CX)) { 1367 if (unlikely(irsp->ulpCommand == CMD_XRI_ABORTED_CX)) {
1385 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, 1368 lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
1386 "%d:0333 IOCB cmd 0x%x" 1369 "0333 IOCB cmd 0x%x"
1387 " processed. Skipping" 1370 " processed. Skipping"
1388 " completion\n", 1371 " completion\n",
1389 phba->brd_no,
1390 irsp->ulpCommand); 1372 irsp->ulpCommand);
1391 break; 1373 break;
1392 } 1374 }
@@ -1423,10 +1405,9 @@ lpfc_sli_handle_fast_ring_event(struct lpfc_hba *phba,
1423 } else { 1405 } else {
1424 /* Unknown IOCB command */ 1406 /* Unknown IOCB command */
1425 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 1407 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
1426 "%d:0334 Unknown IOCB command " 1408 "0334 Unknown IOCB command "
1427 "Data: x%x, x%x x%x x%x x%x\n", 1409 "Data: x%x, x%x x%x x%x x%x\n",
1428 phba->brd_no, type, 1410 type, irsp->ulpCommand,
1429 irsp->ulpCommand,
1430 irsp->ulpStatus, 1411 irsp->ulpStatus,
1431 irsp->ulpIoTag, 1412 irsp->ulpIoTag,
1432 irsp->ulpContext); 1413 irsp->ulpContext);
@@ -1504,10 +1485,9 @@ lpfc_sli_handle_slow_ring_event(struct lpfc_hba *phba,
1504 * rsp ring <portRspMax> 1485 * rsp ring <portRspMax>
1505 */ 1486 */
1506 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 1487 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
1507 "%d:0303 Ring %d handler: portRspPut %d " 1488 "0303 Ring %d handler: portRspPut %d "
1508 "is bigger then rsp ring %d\n", 1489 "is bigger then rsp ring %d\n",
1509 phba->brd_no, pring->ringno, portRspPut, 1490 pring->ringno, portRspPut, portRspMax);
1510 portRspMax);
1511 1491
1512 phba->link_state = LPFC_HBA_ERROR; 1492 phba->link_state = LPFC_HBA_ERROR;
1513 spin_unlock_irqrestore(&phba->hbalock, iflag); 1493 spin_unlock_irqrestore(&phba->hbalock, iflag);
@@ -1596,13 +1576,12 @@ lpfc_sli_handle_slow_ring_event(struct lpfc_hba *phba,
1596 if (irsp->ulpStatus) { 1576 if (irsp->ulpStatus) {
1597 /* Rsp ring <ringno> error: IOCB */ 1577 /* Rsp ring <ringno> error: IOCB */
1598 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, 1578 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI,
1599 "%d:0328 Rsp Ring %d error: " 1579 "0328 Rsp Ring %d error: "
1600 "IOCB Data: " 1580 "IOCB Data: "
1601 "x%x x%x x%x x%x " 1581 "x%x x%x x%x x%x "
1602 "x%x x%x x%x x%x " 1582 "x%x x%x x%x x%x "
1603 "x%x x%x x%x x%x " 1583 "x%x x%x x%x x%x "
1604 "x%x x%x x%x x%x\n", 1584 "x%x x%x x%x x%x\n",
1605 phba->brd_no,
1606 pring->ringno, 1585 pring->ringno,
1607 irsp->un.ulpWord[0], 1586 irsp->un.ulpWord[0],
1608 irsp->un.ulpWord[1], 1587 irsp->un.ulpWord[1],
@@ -1677,10 +1656,9 @@ lpfc_sli_handle_slow_ring_event(struct lpfc_hba *phba,
1677 } else { 1656 } else {
1678 /* Unknown IOCB command */ 1657 /* Unknown IOCB command */
1679 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 1658 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
1680 "%d:0335 Unknown IOCB " 1659 "0335 Unknown IOCB "
1681 "command Data: x%x " 1660 "command Data: x%x "
1682 "x%x x%x x%x\n", 1661 "x%x x%x x%x\n",
1683 phba->brd_no,
1684 irsp->ulpCommand, 1662 irsp->ulpCommand,
1685 irsp->ulpStatus, 1663 irsp->ulpStatus,
1686 irsp->ulpIoTag, 1664 irsp->ulpIoTag,
@@ -1908,8 +1886,8 @@ lpfc_sli_brdkill(struct lpfc_hba *phba)
1908 1886
1909 /* Kill HBA */ 1887 /* Kill HBA */
1910 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, 1888 lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
1911 "%d:0329 Kill HBA Data: x%x x%x\n", 1889 "0329 Kill HBA Data: x%x x%x\n",
1912 phba->brd_no, phba->pport->port_state, psli->sli_flag); 1890 phba->pport->port_state, psli->sli_flag);
1913 1891
1914 if ((pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, 1892 if ((pmb = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool,
1915 GFP_KERNEL)) == 0) 1893 GFP_KERNEL)) == 0)
@@ -1982,7 +1960,7 @@ lpfc_sli_brdreset(struct lpfc_hba *phba)
1982 1960
1983 /* Reset HBA */ 1961 /* Reset HBA */
1984 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, 1962 lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
1985 "%d:0325 Reset HBA Data: x%x x%x\n", phba->brd_no, 1963 "0325 Reset HBA Data: x%x x%x\n",
1986 phba->pport->port_state, psli->sli_flag); 1964 phba->pport->port_state, psli->sli_flag);
1987 1965
1988 /* perform board reset */ 1966 /* perform board reset */
@@ -2037,7 +2015,7 @@ lpfc_sli_brdrestart(struct lpfc_hba *phba)
2037 2015
2038 /* Restart HBA */ 2016 /* Restart HBA */
2039 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, 2017 lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
2040 "%d:0337 Restart HBA Data: x%x x%x\n", phba->brd_no, 2018 "0337 Restart HBA Data: x%x x%x\n",
2041 phba->pport->port_state, psli->sli_flag); 2019 phba->pport->port_state, psli->sli_flag);
2042 2020
2043 word0 = 0; 2021 word0 = 0;
@@ -2102,9 +2080,8 @@ lpfc_sli_chipset_init(struct lpfc_hba *phba)
2102 /* Adapter failed to init, timeout, status reg 2080 /* Adapter failed to init, timeout, status reg
2103 <status> */ 2081 <status> */
2104 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 2082 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
2105 "%d:0436 Adapter failed to init, " 2083 "0436 Adapter failed to init, "
2106 "timeout, status reg x%x\n", 2084 "timeout, status reg x%x\n", status);
2107 phba->brd_no, status);
2108 phba->link_state = LPFC_HBA_ERROR; 2085 phba->link_state = LPFC_HBA_ERROR;
2109 return -ETIMEDOUT; 2086 return -ETIMEDOUT;
2110 } 2087 }
@@ -2115,10 +2092,8 @@ lpfc_sli_chipset_init(struct lpfc_hba *phba)
2115 /* Adapter failed to init, chipset, status reg 2092 /* Adapter failed to init, chipset, status reg
2116 <status> */ 2093 <status> */
2117 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 2094 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
2118 "%d:0437 Adapter failed to init, " 2095 "0437 Adapter failed to init, "
2119 "chipset, status reg x%x\n", 2096 "chipset, status reg x%x\n", status);
2120 phba->brd_no,
2121 status);
2122 phba->link_state = LPFC_HBA_ERROR; 2097 phba->link_state = LPFC_HBA_ERROR;
2123 return -EIO; 2098 return -EIO;
2124 } 2099 }
@@ -2145,10 +2120,8 @@ lpfc_sli_chipset_init(struct lpfc_hba *phba)
2145 /* ERROR: During chipset initialization */ 2120 /* ERROR: During chipset initialization */
2146 /* Adapter failed to init, chipset, status reg <status> */ 2121 /* Adapter failed to init, chipset, status reg <status> */
2147 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 2122 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
2148 "%d:0438 Adapter failed to init, chipset, " 2123 "0438 Adapter failed to init, chipset, "
2149 "status reg x%x\n", 2124 "status reg x%x\n", status);
2150 phba->brd_no,
2151 status);
2152 phba->link_state = LPFC_HBA_ERROR; 2125 phba->link_state = LPFC_HBA_ERROR;
2153 return -EIO; 2126 return -EIO;
2154 } 2127 }
@@ -2226,9 +2199,9 @@ lpfc_sli_hbq_setup(struct lpfc_hba *phba)
2226 2199
2227 lpfc_printf_log(phba, KERN_ERR, 2200 lpfc_printf_log(phba, KERN_ERR,
2228 LOG_SLI | LOG_VPORT, 2201 LOG_SLI | LOG_VPORT,
2229 "%d:1805 Adapter failed to init. " 2202 "1805 Adapter failed to init. "
2230 "Data: x%x x%x x%x\n", 2203 "Data: x%x x%x x%x\n",
2231 phba->brd_no, pmbox->mbxCommand, 2204 pmbox->mbxCommand,
2232 pmbox->mbxStatus, hbqno); 2205 pmbox->mbxStatus, hbqno);
2233 2206
2234 phba->link_state = LPFC_HBA_ERROR; 2207 phba->link_state = LPFC_HBA_ERROR;
@@ -2295,10 +2268,9 @@ lpfc_do_config_port(struct lpfc_hba *phba, int sli_mode)
2295 rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL); 2268 rc = lpfc_sli_issue_mbox(phba, pmb, MBX_POLL);
2296 if (rc != MBX_SUCCESS) { 2269 if (rc != MBX_SUCCESS) {
2297 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 2270 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
2298 "%d:0442 Adapter failed to init, mbxCmd x%x " 2271 "0442 Adapter failed to init, mbxCmd x%x "
2299 "CONFIG_PORT, mbxStatus x%x Data: x%x\n", 2272 "CONFIG_PORT, mbxStatus x%x Data: x%x\n",
2300 phba->brd_no, pmb->mb.mbxCommand, 2273 pmb->mb.mbxCommand, pmb->mb.mbxStatus, 0);
2301 pmb->mb.mbxStatus, 0);
2302 spin_lock_irq(&phba->hbalock); 2274 spin_lock_irq(&phba->hbalock);
2303 phba->sli.sli_flag &= ~LPFC_SLI2_ACTIVE; 2275 phba->sli.sli_flag &= ~LPFC_SLI2_ACTIVE;
2304 spin_unlock_irq(&phba->hbalock); 2276 spin_unlock_irq(&phba->hbalock);
@@ -2339,9 +2311,9 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
2339 case 2: 2311 case 2:
2340 if (phba->cfg_npiv_enable) { 2312 if (phba->cfg_npiv_enable) {
2341 lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT, 2313 lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT,
2342 "%d:1824 NPIV enabled: Override lpfc_sli_mode " 2314 "1824 NPIV enabled: Override lpfc_sli_mode "
2343 "parameter (%d) to auto (0).\n", 2315 "parameter (%d) to auto (0).\n",
2344 phba->brd_no, lpfc_sli_mode); 2316 lpfc_sli_mode);
2345 break; 2317 break;
2346 } 2318 }
2347 mode = 2; 2319 mode = 2;
@@ -2351,9 +2323,8 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
2351 break; 2323 break;
2352 default: 2324 default:
2353 lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT, 2325 lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT,
2354 "%d:1819 Unrecognized lpfc_sli_mode " 2326 "1819 Unrecognized lpfc_sli_mode "
2355 "parameter: %d.\n", 2327 "parameter: %d.\n", lpfc_sli_mode);
2356 phba->brd_no, lpfc_sli_mode);
2357 2328
2358 break; 2329 break;
2359 } 2330 }
@@ -2361,9 +2332,8 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
2361 rc = lpfc_do_config_port(phba, mode); 2332 rc = lpfc_do_config_port(phba, mode);
2362 if (rc && lpfc_sli_mode == 3) 2333 if (rc && lpfc_sli_mode == 3)
2363 lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT, 2334 lpfc_printf_log(phba, KERN_ERR, LOG_INIT | LOG_VPORT,
2364 "%d:1820 Unable to select SLI-3. " 2335 "1820 Unable to select SLI-3. "
2365 "Not supported by adapter.\n", 2336 "Not supported by adapter.\n");
2366 phba->brd_no);
2367 if (rc && mode != 2) 2337 if (rc && mode != 2)
2368 rc = lpfc_do_config_port(phba, 2); 2338 rc = lpfc_do_config_port(phba, 2);
2369 if (rc) 2339 if (rc)
@@ -2382,8 +2352,8 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
2382 } 2352 }
2383 2353
2384 lpfc_printf_log(phba, KERN_INFO, LOG_INIT, 2354 lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
2385 "%d:0444 Firmware in SLI %x mode. Max_vpi %d\n", 2355 "0444 Firmware in SLI %x mode. Max_vpi %d\n",
2386 phba->brd_no, phba->sli_rev, phba->max_vpi); 2356 phba->sli_rev, phba->max_vpi);
2387 rc = lpfc_sli_ring_map(phba); 2357 rc = lpfc_sli_ring_map(phba);
2388 2358
2389 if (rc) 2359 if (rc)
@@ -2408,8 +2378,7 @@ lpfc_sli_hba_setup(struct lpfc_hba *phba)
2408lpfc_sli_hba_setup_error: 2378lpfc_sli_hba_setup_error:
2409 phba->link_state = LPFC_HBA_ERROR; 2379 phba->link_state = LPFC_HBA_ERROR;
2410 lpfc_printf_log(phba, KERN_INFO, LOG_INIT, 2380 lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
2411 "%d:0445 Firmware initialization failed\n", 2381 "0445 Firmware initialization failed\n");
2412 phba->brd_no);
2413 return rc; 2382 return rc;
2414} 2383}
2415 2384
@@ -2461,9 +2430,7 @@ lpfc_mbox_timeout_handler(struct lpfc_hba *phba)
2461 2430
2462 /* Mbox cmd <mbxCommand> timeout */ 2431 /* Mbox cmd <mbxCommand> timeout */
2463 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, 2432 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI,
2464 "%d:0310 Mailbox command x%x timeout Data: x%x x%x " 2433 "0310 Mailbox command x%x timeout Data: x%x x%x x%p\n",
2465 "x%p\n",
2466 phba->brd_no,
2467 mb->mbxCommand, 2434 mb->mbxCommand,
2468 phba->pport->port_state, 2435 phba->pport->port_state,
2469 phba->sli.sli_flag, 2436 phba->sli.sli_flag,
@@ -2486,8 +2453,7 @@ lpfc_mbox_timeout_handler(struct lpfc_hba *phba)
2486 lpfc_sli_abort_iocb_ring(phba, pring); 2453 lpfc_sli_abort_iocb_ring(phba, pring);
2487 2454
2488 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, 2455 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI,
2489 "%d:0316 Resetting board due to mailbox timeout\n", 2456 "0316 Resetting board due to mailbox timeout\n");
2490 phba->brd_no);
2491 /* 2457 /*
2492 * lpfc_offline calls lpfc_sli_hba_down which will clean up 2458 * lpfc_offline calls lpfc_sli_hba_down which will clean up
2493 * on oustanding mailbox commands. 2459 * on oustanding mailbox commands.
@@ -2518,8 +2484,7 @@ lpfc_sli_issue_mbox(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmbox, uint32_t flag)
2518 if(!pmbox->vport) { 2484 if(!pmbox->vport) {
2519 lpfc_printf_log(phba, KERN_ERR, 2485 lpfc_printf_log(phba, KERN_ERR,
2520 LOG_MBOX | LOG_VPORT, 2486 LOG_MBOX | LOG_VPORT,
2521 "%d:1806 Mbox x%x failed. No vport\n", 2487 "1806 Mbox x%x failed. No vport\n",
2522 phba->brd_no,
2523 pmbox->mb.mbxCommand); 2488 pmbox->mb.mbxCommand);
2524 dump_stack(); 2489 dump_stack();
2525 return MBXERR_ERROR; 2490 return MBXERR_ERROR;
@@ -2596,9 +2561,8 @@ lpfc_sli_issue_mbox(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmbox, uint32_t flag)
2596 2561
2597 /* Mbox cmd issue - BUSY */ 2562 /* Mbox cmd issue - BUSY */
2598 lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, 2563 lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI,
2599 "%d (%d):0308 Mbox cmd issue - BUSY Data: " 2564 "(%d):0308 Mbox cmd issue - BUSY Data: "
2600 "x%x x%x x%x x%x\n", 2565 "x%x x%x x%x x%x\n",
2601 phba->brd_no,
2602 pmbox->vport ? pmbox->vport->vpi : 0xffffff, 2566 pmbox->vport ? pmbox->vport->vpi : 0xffffff,
2603 mb->mbxCommand, phba->pport->port_state, 2567 mb->mbxCommand, phba->pport->port_state,
2604 psli->sli_flag, flag); 2568 psli->sli_flag, flag);
@@ -2660,9 +2624,9 @@ lpfc_sli_issue_mbox(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmbox, uint32_t flag)
2660 2624
2661 /* Mailbox cmd <cmd> issue */ 2625 /* Mailbox cmd <cmd> issue */
2662 lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI, 2626 lpfc_printf_log(phba, KERN_INFO, LOG_MBOX | LOG_SLI,
2663 "%d (%d):0309 Mailbox cmd x%x issue Data: x%x x%x " 2627 "(%d):0309 Mailbox cmd x%x issue Data: x%x x%x "
2664 "x%x\n", 2628 "x%x\n",
2665 phba->brd_no, pmbox->vport ? pmbox->vport->vpi : 0, 2629 pmbox->vport ? pmbox->vport->vpi : 0,
2666 mb->mbxCommand, phba->pport->port_state, 2630 mb->mbxCommand, phba->pport->port_state,
2667 psli->sli_flag, flag); 2631 psli->sli_flag, flag);
2668 2632
@@ -2864,8 +2828,7 @@ __lpfc_sli_issue_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
2864 (piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN)) { 2828 (piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN)) {
2865 lpfc_printf_log(phba, KERN_ERR, 2829 lpfc_printf_log(phba, KERN_ERR,
2866 LOG_SLI | LOG_VPORT, 2830 LOG_SLI | LOG_VPORT,
2867 "%d:1807 IOCB x%x failed. No vport\n", 2831 "1807 IOCB x%x failed. No vport\n",
2868 phba->brd_no,
2869 piocb->iocb.ulpCommand); 2832 piocb->iocb.ulpCommand);
2870 dump_stack(); 2833 dump_stack();
2871 return IOCB_ERROR; 2834 return IOCB_ERROR;
@@ -3096,11 +3059,10 @@ lpfc_sli_setup(struct lpfc_hba *phba)
3096 } 3059 }
3097 if (totiocbsize > MAX_SLIM_IOCB_SIZE) { 3060 if (totiocbsize > MAX_SLIM_IOCB_SIZE) {
3098 /* Too many cmd / rsp ring entries in SLI2 SLIM */ 3061 /* Too many cmd / rsp ring entries in SLI2 SLIM */
3099 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 3062 printk(KERN_ERR "%d:0462 Too many cmd / rsp ring entries in "
3100 "%d:0462 Too many cmd / rsp ring entries in " 3063 "SLI2 SLIM Data: x%x x%lx\n",
3101 "SLI2 SLIM Data: x%x x%lx\n", 3064 phba->brd_no, totiocbsize,
3102 phba->brd_no, totiocbsize, 3065 (unsigned long) MAX_SLIM_IOCB_SIZE);
3103 (unsigned long) MAX_SLIM_IOCB_SIZE);
3104 } 3066 }
3105 if (phba->cfg_multi_ring_support == 2) 3067 if (phba->cfg_multi_ring_support == 2)
3106 lpfc_extra_ring_setup(phba); 3068 lpfc_extra_ring_setup(phba);
@@ -3321,9 +3283,9 @@ lpfc_sli_ringpostbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
3321 3283
3322 spin_unlock_irq(&phba->hbalock); 3284 spin_unlock_irq(&phba->hbalock);
3323 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 3285 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
3324 "%d:0410 Cannot find virtual addr for mapped buf on " 3286 "0410 Cannot find virtual addr for mapped buf on "
3325 "ring %d Data x%llx x%p x%p x%x\n", 3287 "ring %d Data x%llx x%p x%p x%x\n",
3326 phba->brd_no, pring->ringno, (unsigned long long)phys, 3288 pring->ringno, (unsigned long long)phys,
3327 slp->next, slp->prev, pring->postbufq_cnt); 3289 slp->next, slp->prev, pring->postbufq_cnt);
3328 return NULL; 3290 return NULL;
3329} 3291}
@@ -3348,12 +3310,11 @@ lpfc_sli_abort_els_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
3348 abort_iocb = phba->sli.iocbq_lookup[abort_iotag]; 3310 abort_iocb = phba->sli.iocbq_lookup[abort_iotag];
3349 3311
3350 lpfc_printf_log(phba, KERN_INFO, LOG_ELS | LOG_SLI, 3312 lpfc_printf_log(phba, KERN_INFO, LOG_ELS | LOG_SLI,
3351 "%d:0327 Cannot abort els iocb %p " 3313 "0327 Cannot abort els iocb %p "
3352 "with tag %x context %x, abort status %x, " 3314 "with tag %x context %x, abort status %x, "
3353 "abort code %x\n", 3315 "abort code %x\n",
3354 phba->brd_no, abort_iocb, abort_iotag, 3316 abort_iocb, abort_iotag, abort_context,
3355 abort_context, irsp->ulpStatus, 3317 irsp->ulpStatus, irsp->un.ulpWord[4]);
3356 irsp->un.ulpWord[4]);
3357 3318
3358 /* 3319 /*
3359 * make sure we have the right iocbq before taking it 3320 * make sure we have the right iocbq before taking it
@@ -3387,9 +3348,9 @@ lpfc_ignore_els_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
3387 3348
3388 /* ELS cmd tag <ulpIoTag> completes */ 3349 /* ELS cmd tag <ulpIoTag> completes */
3389 lpfc_printf_log(phba, KERN_INFO, LOG_ELS, 3350 lpfc_printf_log(phba, KERN_INFO, LOG_ELS,
3390 "%d (X):0133 Ignoring ELS cmd tag x%x completion Data: " 3351 "0133 Ignoring ELS cmd tag x%x completion Data: "
3391 "x%x x%x x%x\n", 3352 "x%x x%x x%x\n",
3392 phba->brd_no, irsp->ulpIoTag, irsp->ulpStatus, 3353 irsp->ulpIoTag, irsp->ulpStatus,
3393 irsp->un.ulpWord[4], irsp->ulpTimeout); 3354 irsp->un.ulpWord[4], irsp->ulpTimeout);
3394 if (cmdiocb->iocb.ulpCommand == CMD_GEN_REQUEST64_CR) 3355 if (cmdiocb->iocb.ulpCommand == CMD_GEN_REQUEST64_CR)
3395 lpfc_ct_free_iocb(phba, cmdiocb); 3356 lpfc_ct_free_iocb(phba, cmdiocb);
@@ -3455,12 +3416,11 @@ lpfc_sli_issue_abort_iotag(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
3455 3416
3456 abtsiocbp->iocb_cmpl = lpfc_sli_abort_els_cmpl; 3417 abtsiocbp->iocb_cmpl = lpfc_sli_abort_els_cmpl;
3457 3418
3458 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, 3419 lpfc_printf_vlog(vport, KERN_INFO, LOG_SLI,
3459 "%d (%d):0339 Abort xri x%x, original iotag x%x, " 3420 "0339 Abort xri x%x, original iotag x%x, "
3460 "abort cmd iotag x%x\n", 3421 "abort cmd iotag x%x\n",
3461 phba->brd_no, vport->vpi, 3422 iabt->un.acxri.abortContextTag,
3462 iabt->un.acxri.abortContextTag, 3423 iabt->un.acxri.abortIoTag, abtsiocbp->iotag);
3463 iabt->un.acxri.abortIoTag, abtsiocbp->iotag);
3464 retval = __lpfc_sli_issue_iocb(phba, pring, abtsiocbp, 0); 3424 retval = __lpfc_sli_issue_iocb(phba, pring, abtsiocbp, 0);
3465 3425
3466abort_iotag_exit: 3426abort_iotag_exit:
@@ -3663,25 +3623,23 @@ lpfc_sli_issue_iocb_wait(struct lpfc_hba *phba,
3663 3623
3664 if (piocb->iocb_flag & LPFC_IO_WAKE) { 3624 if (piocb->iocb_flag & LPFC_IO_WAKE) {
3665 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, 3625 lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
3666 "%d:0331 IOCB wake signaled\n", 3626 "0331 IOCB wake signaled\n");
3667 phba->brd_no);
3668 } else if (timeleft == 0) { 3627 } else if (timeleft == 0) {
3669 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 3628 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
3670 "%d:0338 IOCB wait timeout error - no " 3629 "0338 IOCB wait timeout error - no "
3671 "wake response Data x%x\n", 3630 "wake response Data x%x\n", timeout);
3672 phba->brd_no, timeout);
3673 retval = IOCB_TIMEDOUT; 3631 retval = IOCB_TIMEDOUT;
3674 } else { 3632 } else {
3675 lpfc_printf_log(phba, KERN_ERR, LOG_SLI, 3633 lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
3676 "%d:0330 IOCB wake NOT set, " 3634 "0330 IOCB wake NOT set, "
3677 "Data x%x x%lx\n", phba->brd_no, 3635 "Data x%x x%lx\n",
3678 timeout, (timeleft / jiffies)); 3636 timeout, (timeleft / jiffies));
3679 retval = IOCB_TIMEDOUT; 3637 retval = IOCB_TIMEDOUT;
3680 } 3638 }
3681 } else { 3639 } else {
3682 lpfc_printf_log(phba, KERN_INFO, LOG_SLI, 3640 lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
3683 "%d:0332 IOCB wait issue failed, Data x%x\n", 3641 ":0332 IOCB wait issue failed, Data x%x\n",
3684 phba->brd_no, retval); 3642 retval);
3685 retval = IOCB_ERROR; 3643 retval = IOCB_ERROR;
3686 } 3644 }
3687 3645
@@ -3932,12 +3890,10 @@ lpfc_intr_handler(int irq, void *dev_id)
3932 */ 3890 */
3933 lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX | 3891 lpfc_printf_log(phba, KERN_WARNING, LOG_MBOX |
3934 LOG_SLI, 3892 LOG_SLI,
3935 "%d (%d):0304 Stray Mailbox " 3893 "(%d):0304 Stray Mailbox "
3936 "Interrupt mbxCommand x%x " 3894 "Interrupt mbxCommand x%x "
3937 "mbxStatus x%x\n", 3895 "mbxStatus x%x\n",
3938 phba->brd_no, 3896 (vport ? vport->vpi : 0),
3939 (vport
3940 ? vport->vpi : 0),
3941 pmbox->mbxCommand, 3897 pmbox->mbxCommand,
3942 pmbox->mbxStatus); 3898 pmbox->mbxStatus);
3943 } 3899 }