Lines Matching refs:pUM
38 #define VERIFY_FCOE_BINDING(pUM) \ argument
39 if (!BNXE_FCOE(pUM)) \
41 BnxeLogWarn((pUM), "FCoE not supported on this device!"); \
44 if (!(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE))) \
46 BnxeLogWarn((pUM), "FCoE client not bound!"); \
51 void BnxeFcoeFreeResc(um_device_t * pUM, in BnxeFcoeFreeResc() argument
54 BNXE_LOCK_ENTER_OFFLOAD(pUM); in BnxeFcoeFreeResc()
55 lm_fc_del_fcoe_state(&pUM->lm_dev, &pFcoeState->lm_fcoe); in BnxeFcoeFreeResc()
56 BNXE_LOCK_EXIT_OFFLOAD(pUM); in BnxeFcoeFreeResc()
58 lm_fc_free_con_resc(&pUM->lm_dev, &pFcoeState->lm_fcoe); in BnxeFcoeFreeResc()
64 static boolean_t BnxeFcoeCqeIndicate(um_device_t * pUM, in BnxeFcoeCqeIndicate() argument
72 BnxeLogWarn(pUM, "Invalid FCoE CQE"); in BnxeFcoeCqeIndicate()
81 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeCqeIndicate()
82 pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeCqeIndicate()
91 static void BnxeFcoeInitCqeWork(um_device_t * pUM, in BnxeFcoeInitCqeWork() argument
95 if (!BnxeFcoeCqeIndicate(pUM, pData, dataLen)) in BnxeFcoeInitCqeWork()
97 pUM->fcoe.stats.initCqeRxErr++; in BnxeFcoeInitCqeWork()
101 pUM->fcoe.stats.initCqeRx++; in BnxeFcoeInitCqeWork()
106 boolean_t BnxeFcoeInitCqe(um_device_t * pUM, in BnxeFcoeInitCqe() argument
121 return BnxeWorkQueueAdd(pUM, BnxeFcoeInitCqeWork, in BnxeFcoeInitCqe()
126 static void BnxeFcoeInitWqeWork(um_device_t * pUM, in BnxeFcoeInitWqeWork() argument
135 BnxeLogWarn(pUM, "Invalid FCoE Init WQE"); in BnxeFcoeInitWqeWork()
136 pUM->fcoe.stats.initWqeTxErr++; in BnxeFcoeInitWqeWork()
142 BnxeLogWarn(pUM, "ERROR: Invalid FCoE HSI major version (L5=%d vs FW=%d)", in BnxeFcoeInitWqeWork()
149 if (lm_fc_init(&pUM->lm_dev, in BnxeFcoeInitWqeWork()
154 BnxeLogWarn(pUM, "Failed to post FCoE Init WQE"); in BnxeFcoeInitWqeWork()
159 pUM->fcoe.stats.initWqeTx++; in BnxeFcoeInitWqeWork()
165 pUM->fcoe.stats.initWqeTxErr++; in BnxeFcoeInitWqeWork()
181 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeInitWqeWork()
182 pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeInitWqeWork()
190 static boolean_t BnxeFcoeInitWqe(um_device_t * pUM, in BnxeFcoeInitWqe() argument
199 return BnxeWorkQueueAdd(pUM, BnxeFcoeInitWqeWork, wqe, sizeof(wqe)); in BnxeFcoeInitWqe()
203 static void BnxeFcoeOffloadConnCqeWork(um_device_t * pUM, in BnxeFcoeOffloadConnCqeWork() argument
207 if (!BnxeFcoeCqeIndicate(pUM, pData, dataLen)) in BnxeFcoeOffloadConnCqeWork()
209 pUM->fcoe.stats.offloadConnCqeRxErr++; in BnxeFcoeOffloadConnCqeWork()
213 pUM->fcoe.stats.offloadConnCqeRx++; in BnxeFcoeOffloadConnCqeWork()
218 boolean_t BnxeFcoeOffloadConnCqe(um_device_t * pUM, in BnxeFcoeOffloadConnCqe() argument
245 return BnxeWorkQueueAdd(pUM, BnxeFcoeOffloadConnCqeWork, in BnxeFcoeOffloadConnCqe()
250 static void BnxeFcoeOffloadConnWqeWork(um_device_t * pUM, in BnxeFcoeOffloadConnWqeWork() argument
261 BnxeLogWarn(pUM, "Invalid FCoE Offload Conn WQE"); in BnxeFcoeOffloadConnWqeWork()
262 pUM->fcoe.stats.offloadConnWqeTxErr++; in BnxeFcoeOffloadConnWqeWork()
269 BnxeLogWarn(pUM, "Failed to allocate memory for FCoE state"); in BnxeFcoeOffloadConnWqeWork()
273 BNXE_LOCK_ENTER_OFFLOAD(pUM); in BnxeFcoeOffloadConnWqeWork()
274 rc = lm_fc_init_fcoe_state(&pUM->lm_dev, in BnxeFcoeOffloadConnWqeWork()
275 &pUM->lm_dev.fcoe_info.run_time.state_blk, in BnxeFcoeOffloadConnWqeWork()
277 BNXE_LOCK_EXIT_OFFLOAD(pUM); in BnxeFcoeOffloadConnWqeWork()
283 BnxeLogWarn(pUM, "Failed to initialize FCoE state"); in BnxeFcoeOffloadConnWqeWork()
292 rc = lm_fc_alloc_con_resc(&pUM->lm_dev, &pFcoeState->lm_fcoe); in BnxeFcoeOffloadConnWqeWork()
296 lm_fc_init_fcoe_context(&pUM->lm_dev, &pFcoeState->lm_fcoe); in BnxeFcoeOffloadConnWqeWork()
297 lm_fc_post_offload_ramrod(&pUM->lm_dev, &pFcoeState->lm_fcoe); in BnxeFcoeOffloadConnWqeWork()
305 BnxeLogInfo(pUM, "lm_fc_alloc_con_resc returned pending?"); in BnxeFcoeOffloadConnWqeWork()
309 BnxeFcoeFreeResc(pUM, pFcoeState); in BnxeFcoeOffloadConnWqeWork()
310 BnxeLogInfo(pUM, "lm_fc_alloc_con_resc failed (%d)", rc); in BnxeFcoeOffloadConnWqeWork()
314 pUM->fcoe.stats.offloadConnWqeTx++; in BnxeFcoeOffloadConnWqeWork()
320 pUM->fcoe.stats.offloadConnWqeTxErr++; in BnxeFcoeOffloadConnWqeWork()
336 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeOffloadConnWqeWork()
337 pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeOffloadConnWqeWork()
345 static boolean_t BnxeFcoeOffloadConnWqe(um_device_t * pUM, in BnxeFcoeOffloadConnWqe() argument
355 return BnxeWorkQueueAdd(pUM, BnxeFcoeOffloadConnWqeWork, in BnxeFcoeOffloadConnWqe()
360 static void BnxeFcoeEnableConnCqeWork(um_device_t * pUM, in BnxeFcoeEnableConnCqeWork() argument
364 if (!BnxeFcoeCqeIndicate(pUM, pData, dataLen)) in BnxeFcoeEnableConnCqeWork()
366 pUM->fcoe.stats.enableConnCqeRxErr++; in BnxeFcoeEnableConnCqeWork()
370 pUM->fcoe.stats.enableConnCqeRx++; in BnxeFcoeEnableConnCqeWork()
375 boolean_t BnxeFcoeEnableConnCqe(um_device_t * pUM, in BnxeFcoeEnableConnCqe() argument
402 return BnxeWorkQueueAdd(pUM, BnxeFcoeEnableConnCqeWork, in BnxeFcoeEnableConnCqe()
407 static void BnxeFcoeEnableConnWqeWork(um_device_t * pUM, in BnxeFcoeEnableConnWqeWork() argument
417 BnxeLogWarn(pUM, "Invalid FCoE Enable Conn WQE"); in BnxeFcoeEnableConnWqeWork()
418 pUM->fcoe.stats.enableConnWqeTxErr++; in BnxeFcoeEnableConnWqeWork()
423 lm_cid_cookie(&pUM->lm_dev, in BnxeFcoeEnableConnWqeWork()
432 if (lm_fc_post_enable_ramrod(&pUM->lm_dev, in BnxeFcoeEnableConnWqeWork()
440 pUM->fcoe.stats.enableConnWqeTx++; in BnxeFcoeEnableConnWqeWork()
446 pUM->fcoe.stats.enableConnWqeTxErr++; in BnxeFcoeEnableConnWqeWork()
448 BnxeLogWarn(pUM, "Failed to post FCoE Enable Conn WQE"); in BnxeFcoeEnableConnWqeWork()
464 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeEnableConnWqeWork()
465 pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeEnableConnWqeWork()
473 static boolean_t BnxeFcoeEnableConnWqe(um_device_t * pUM, in BnxeFcoeEnableConnWqe() argument
476 return BnxeWorkQueueAdd(pUM, BnxeFcoeEnableConnWqeWork, in BnxeFcoeEnableConnWqe()
481 static void BnxeFcoeDisableConnCqeWork(um_device_t * pUM, in BnxeFcoeDisableConnCqeWork() argument
485 if (!BnxeFcoeCqeIndicate(pUM, pData, dataLen)) in BnxeFcoeDisableConnCqeWork()
487 pUM->fcoe.stats.disableConnCqeRxErr++; in BnxeFcoeDisableConnCqeWork()
491 pUM->fcoe.stats.disableConnCqeRx++; in BnxeFcoeDisableConnCqeWork()
496 boolean_t BnxeFcoeDisableConnCqe(um_device_t * pUM, in BnxeFcoeDisableConnCqe() argument
523 return BnxeWorkQueueAdd(pUM, BnxeFcoeDisableConnCqeWork, in BnxeFcoeDisableConnCqe()
528 static void BnxeFcoeDisableConnWqeWork(um_device_t * pUM, in BnxeFcoeDisableConnWqeWork() argument
538 BnxeLogWarn(pUM, "Invalid FCoE Disable Conn WQE"); in BnxeFcoeDisableConnWqeWork()
539 pUM->fcoe.stats.disableConnWqeTxErr++; in BnxeFcoeDisableConnWqeWork()
544 lm_cid_cookie(&pUM->lm_dev, in BnxeFcoeDisableConnWqeWork()
553 if (lm_fc_post_disable_ramrod(&pUM->lm_dev, in BnxeFcoeDisableConnWqeWork()
561 pUM->fcoe.stats.disableConnWqeTx++; in BnxeFcoeDisableConnWqeWork()
567 pUM->fcoe.stats.disableConnWqeTxErr++; in BnxeFcoeDisableConnWqeWork()
569 BnxeLogWarn(pUM, "Failed to post FCoE Disable Conn WQE"); in BnxeFcoeDisableConnWqeWork()
585 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeDisableConnWqeWork()
586 pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeDisableConnWqeWork()
594 static boolean_t BnxeFcoeDisableConnWqe(um_device_t * pUM, in BnxeFcoeDisableConnWqe() argument
597 return BnxeWorkQueueAdd(pUM, BnxeFcoeDisableConnWqeWork, in BnxeFcoeDisableConnWqe()
602 static void BnxeFcoeDestroyConnCqeWork(um_device_t * pUM, in BnxeFcoeDestroyConnCqeWork() argument
611 BnxeLogWarn(pUM, "Invalid FCoE Destroy Conn CQE"); in BnxeFcoeDestroyConnCqeWork()
612 pUM->fcoe.stats.destroyConnCqeRxErr++; in BnxeFcoeDestroyConnCqeWork()
617 lm_cid_cookie(&pUM->lm_dev, in BnxeFcoeDestroyConnCqeWork()
621 BnxeFcoeFreeResc(pUM, pFcoeState); in BnxeFcoeDestroyConnCqeWork()
623 if (!BnxeFcoeCqeIndicate(pUM, pData, dataLen)) in BnxeFcoeDestroyConnCqeWork()
625 pUM->fcoe.stats.destroyConnCqeRxErr++; in BnxeFcoeDestroyConnCqeWork()
629 pUM->fcoe.stats.destroyConnCqeRx++; in BnxeFcoeDestroyConnCqeWork()
634 boolean_t BnxeFcoeDestroyConnCqe(um_device_t * pUM, in BnxeFcoeDestroyConnCqe() argument
661 return BnxeWorkQueueAdd(pUM, BnxeFcoeDestroyConnCqeWork, in BnxeFcoeDestroyConnCqe()
666 static void BnxeFcoeDestroyConnWqeWork(um_device_t * pUM, in BnxeFcoeDestroyConnWqeWork() argument
676 BnxeLogWarn(pUM, "Invalid FCoE Destroy Conn WQE"); in BnxeFcoeDestroyConnWqeWork()
677 pUM->fcoe.stats.destroyConnWqeTxErr++; in BnxeFcoeDestroyConnWqeWork()
682 lm_cid_cookie(&pUM->lm_dev, in BnxeFcoeDestroyConnWqeWork()
691 if (lm_fc_post_terminate_ramrod(&pUM->lm_dev, in BnxeFcoeDestroyConnWqeWork()
698 pUM->fcoe.stats.destroyConnWqeTx++; in BnxeFcoeDestroyConnWqeWork()
704 pUM->fcoe.stats.destroyConnWqeTxErr++; in BnxeFcoeDestroyConnWqeWork()
706 BnxeLogWarn(pUM, "Failed to post FCoE Destroy Conn WQE"); in BnxeFcoeDestroyConnWqeWork()
723 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeDestroyConnWqeWork()
724 pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeDestroyConnWqeWork()
732 static boolean_t BnxeFcoeDestroyConnWqe(um_device_t * pUM, in BnxeFcoeDestroyConnWqe() argument
735 return BnxeWorkQueueAdd(pUM, BnxeFcoeDestroyConnWqeWork, in BnxeFcoeDestroyConnWqe()
740 static void BnxeFcoeDestroyCqeWork(um_device_t * pUM, in BnxeFcoeDestroyCqeWork() argument
744 if (!BnxeFcoeCqeIndicate(pUM, pData, dataLen)) in BnxeFcoeDestroyCqeWork()
746 pUM->fcoe.stats.destroyCqeRxErr++; in BnxeFcoeDestroyCqeWork()
750 pUM->fcoe.stats.destroyCqeRx++; in BnxeFcoeDestroyCqeWork()
755 boolean_t BnxeFcoeDestroyCqe(um_device_t * pUM, in BnxeFcoeDestroyCqe() argument
770 return BnxeWorkQueueAdd(pUM, BnxeFcoeDestroyCqeWork, in BnxeFcoeDestroyCqe()
775 static void BnxeFcoeDestroyWqeWork(um_device_t * pUM, in BnxeFcoeDestroyWqeWork() argument
785 BnxeLogWarn(pUM, "Invalid FCoE Destroy WQE"); in BnxeFcoeDestroyWqeWork()
786 pUM->fcoe.stats.destroyWqeTxErr++; in BnxeFcoeDestroyWqeWork()
790 if (lm_fc_post_destroy_ramrod(&pUM->lm_dev) == LM_STATUS_SUCCESS) in BnxeFcoeDestroyWqeWork()
792 pUM->fcoe.stats.destroyWqeTx++; in BnxeFcoeDestroyWqeWork()
796 pUM->fcoe.stats.destroyWqeTxErr++; in BnxeFcoeDestroyWqeWork()
798 BnxeLogWarn(pUM, "Failed to post FCoE Destroy WQE"); in BnxeFcoeDestroyWqeWork()
813 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeDestroyWqeWork()
814 pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeDestroyWqeWork()
822 static boolean_t BnxeFcoeDestroyWqe(um_device_t * pUM, in BnxeFcoeDestroyWqe() argument
825 return BnxeWorkQueueAdd(pUM, BnxeFcoeDestroyWqeWork, in BnxeFcoeDestroyWqe()
830 static void BnxeFcoeStatCqeWork(um_device_t * pUM, in BnxeFcoeStatCqeWork() argument
834 if (!BnxeFcoeCqeIndicate(pUM, pData, dataLen)) in BnxeFcoeStatCqeWork()
836 pUM->fcoe.stats.statCqeRxErr++; in BnxeFcoeStatCqeWork()
840 pUM->fcoe.stats.statCqeRx++; in BnxeFcoeStatCqeWork()
845 boolean_t BnxeFcoeStatCqe(um_device_t * pUM, in BnxeFcoeStatCqe() argument
860 return BnxeWorkQueueAdd(pUM, BnxeFcoeStatCqeWork, in BnxeFcoeStatCqe()
865 static void BnxeFcoeStatWqeWork(um_device_t * pUM, in BnxeFcoeStatWqeWork() argument
874 BnxeLogWarn(pUM, "Invalid FCoE Stat WQE"); in BnxeFcoeStatWqeWork()
875 pUM->fcoe.stats.statWqeTxErr++; in BnxeFcoeStatWqeWork()
879 if (lm_fc_post_stat_ramrod(&pUM->lm_dev, in BnxeFcoeStatWqeWork()
882 pUM->fcoe.stats.statWqeTx++; in BnxeFcoeStatWqeWork()
886 pUM->fcoe.stats.statWqeTxErr++; in BnxeFcoeStatWqeWork()
888 BnxeLogWarn(pUM, "Failed to post FCoE Stat WQE"); in BnxeFcoeStatWqeWork()
903 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeStatWqeWork()
904 pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeStatWqeWork()
912 static boolean_t BnxeFcoeStatWqe(um_device_t * pUM, in BnxeFcoeStatWqe() argument
915 return BnxeWorkQueueAdd(pUM, BnxeFcoeStatWqeWork, in BnxeFcoeStatWqe()
922 static void BnxeFcoeCompRequestCqeWork(um_device_t * pUM, in BnxeFcoeCompRequestCqeWork() argument
933 BnxeLogWarn(pUM, "Invalid FCoE Comp Request CQE array"); in BnxeFcoeCompRequestCqeWork()
934 pUM->fcoe.stats.compRequestCqeRxErr++; in BnxeFcoeCompRequestCqeWork()
947 ASSERT(CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)); in BnxeFcoeCompRequestCqeWork()
949 if (!pUM->fcoe.bind.cliIndicateCqes(pUM->fcoe.pDev, in BnxeFcoeCompRequestCqeWork()
953 pUM->fcoe.stats.compRequestCqeRxErr++; in BnxeFcoeCompRequestCqeWork()
957 pUM->fcoe.stats.compRequestCqeRx += num_kcqes; in BnxeFcoeCompRequestCqeWork()
962 boolean_t BnxeFcoeCompRequestCqe(um_device_t * pUM, in BnxeFcoeCompRequestCqe() argument
987 if (!BnxeWorkQueueAdd(pUM, BnxeFcoeCompRequestCqeWork, in BnxeFcoeCompRequestCqe()
994 BnxeFcoeCompRequestCqeWork(pUM, in BnxeFcoeCompRequestCqe()
1011 um_device_t * pUM = (um_device_t *)ddi_get_driver_private(pDev); in BnxeFcoePrvCtl() local
1016 if (pUM == NULL || pUM->pDev != pDev) in BnxeFcoePrvCtl()
1022 BnxeLogDbg(pUM, "*** %s ***", __func__); in BnxeFcoePrvCtl()
1024 VERIFY_FCOE_BINDING(pUM); in BnxeFcoePrvCtl()
1032 BnxeLogWarn(pUM, "Invalid MAC Address buffer length for get (%d)", in BnxeFcoePrvCtl()
1039 BnxeLogWarn(pUM, "NULL MAC Address buffer for get"); in BnxeFcoePrvCtl()
1043 COPY_ETH_ADDRESS(pUM->lm_dev.hw_info.fcoe_mac_addr, pData); in BnxeFcoePrvCtl()
1051 BnxeLogWarn(pUM, "Invalid MAC Address length for set (%d)", in BnxeFcoePrvCtl()
1058 BnxeLogWarn(pUM, "NULL MAC Address buffer for set"); in BnxeFcoePrvCtl()
1065 BnxeLogWarn(pUM, "Cannot program a mcast/bcast address as an MAC Address."); in BnxeFcoePrvCtl()
1069 BNXE_LOCK_ENTER_HWINIT(pUM); in BnxeFcoePrvCtl()
1072 COPY_ETH_ADDRESS(pData, pUM->lm_dev.hw_info.fcoe_mac_addr); in BnxeFcoePrvCtl()
1074 rc = BnxeMacAddress(pUM, LM_CLI_IDX_FCOE, B_TRUE, in BnxeFcoePrvCtl()
1075 pUM->lm_dev.hw_info.fcoe_mac_addr); in BnxeFcoePrvCtl()
1077 BNXE_LOCK_EXIT_HWINIT(pUM); in BnxeFcoePrvCtl()
1085 BnxeLogWarn(pUM, "Invalid query buffer for FCoE (%d)", in BnxeFcoePrvCtl()
1092 BnxeLogWarn(pUM, "Invalid query buffer for FCoE"); in BnxeFcoePrvCtl()
1109 switch (pUM->lm_dev.params.mf_mode) in BnxeFcoePrvCtl()
1127 pFcoeInfo->max_fcoe_conn = pUM->lm_dev.params.max_func_fcoe_cons; in BnxeFcoePrvCtl()
1128 pFcoeInfo->max_fcoe_exchanges = pUM->lm_dev.params.max_fcoe_task; in BnxeFcoePrvCtl()
1130 memcpy(&pFcoeInfo->wwn, &pUM->fcoe.wwn, sizeof(BnxeWwnInfo)); in BnxeFcoePrvCtl()
1136 BnxeIntrIguSbDisable(pUM, FCOE_CID(&pUM->lm_dev), B_FALSE); in BnxeFcoePrvCtl()
1141 BnxeIntrIguSbEnable(pUM, FCOE_CID(&pUM->lm_dev), B_FALSE); in BnxeFcoePrvCtl()
1148 BnxeLogWarn(pUM, "Invalid MBA boot check buffer for FCoE (%d)", in BnxeFcoePrvCtl()
1155 BnxeLogWarn(pUM, "Invalid MBA boot check buffer for FCoE"); in BnxeFcoePrvCtl()
1160 (pUM->iscsiInfo.signature != 0) ? B_TRUE : B_FALSE; in BnxeFcoePrvCtl()
1168 BnxeLogWarn(pUM, "Invalid link state buffer for FCoE (%d)", in BnxeFcoePrvCtl()
1175 BnxeLogWarn(pUM, "Invalid link state buffer for FCoE"); in BnxeFcoePrvCtl()
1180 (pUM->devParams.lastIndLink == LM_STATUS_LINK_ACTIVE) ? in BnxeFcoePrvCtl()
1189 BnxeLogWarn(pUM, "Invalid board type buffer for FCoE"); in BnxeFcoePrvCtl()
1193 snprintf((char *)pData, dataLen, "%s", pUM->chipName); in BnxeFcoePrvCtl()
1201 BnxeLogWarn(pUM, "Invalid board serial number buffer for FCoE"); in BnxeFcoePrvCtl()
1207 pUM->lm_dev.hw_info.board_num[0], in BnxeFcoePrvCtl()
1208 pUM->lm_dev.hw_info.board_num[1], in BnxeFcoePrvCtl()
1209 pUM->lm_dev.hw_info.board_num[2], in BnxeFcoePrvCtl()
1210 pUM->lm_dev.hw_info.board_num[3], in BnxeFcoePrvCtl()
1211 pUM->lm_dev.hw_info.board_num[4], in BnxeFcoePrvCtl()
1212 pUM->lm_dev.hw_info.board_num[5], in BnxeFcoePrvCtl()
1213 pUM->lm_dev.hw_info.board_num[6], in BnxeFcoePrvCtl()
1214 pUM->lm_dev.hw_info.board_num[7], in BnxeFcoePrvCtl()
1215 pUM->lm_dev.hw_info.board_num[8], in BnxeFcoePrvCtl()
1216 pUM->lm_dev.hw_info.board_num[9], in BnxeFcoePrvCtl()
1217 pUM->lm_dev.hw_info.board_num[10], in BnxeFcoePrvCtl()
1218 pUM->lm_dev.hw_info.board_num[11], in BnxeFcoePrvCtl()
1219 pUM->lm_dev.hw_info.board_num[12], in BnxeFcoePrvCtl()
1220 pUM->lm_dev.hw_info.board_num[13], in BnxeFcoePrvCtl()
1221 pUM->lm_dev.hw_info.board_num[14], in BnxeFcoePrvCtl()
1222 pUM->lm_dev.hw_info.board_num[15]); in BnxeFcoePrvCtl()
1230 BnxeLogWarn(pUM, "Invalid boot code version buffer for FCoE"); in BnxeFcoePrvCtl()
1234 snprintf((char *)pData, dataLen, "%s", pUM->versionBC); in BnxeFcoePrvCtl()
1242 sizeof(pUM->lm_dev.vars.stats.stats_mirror. in BnxeFcoePrvCtl()
1245 BnxeLogWarn(pUM, "Invalid stats reporting buffer for FCoE"); in BnxeFcoePrvCtl()
1249 memcpy(&pUM->lm_dev.vars.stats.stats_mirror. in BnxeFcoePrvCtl()
1260 BnxeLogWarn(pUM, "Invalid capabilities buffer for FCoE"); in BnxeFcoePrvCtl()
1264 memcpy(&pUM->lm_dev.vars.stats.stats_mirror.stats_drv. in BnxeFcoePrvCtl()
1267 sizeof(pUM->lm_dev.vars.stats.stats_mirror.stats_drv. in BnxeFcoePrvCtl()
1270 lm_ncsi_fcoe_cap_to_scratchpad(&pUM->lm_dev); in BnxeFcoePrvCtl()
1276 BnxeLogWarn(pUM, "Unknown provider command %d", cmd); in BnxeFcoePrvCtl()
1287 um_device_t * pUM = (um_device_t *)ddi_get_driver_private(pDev); in BnxeFcoePrvTx() local
1288 lm_device_t * pLM = &pUM->lm_dev; in BnxeFcoePrvTx()
1294 if (pUM == NULL || pUM->pDev != pDev) in BnxeFcoePrvTx()
1300 VERIFY_FCOE_BINDING(pUM); in BnxeFcoePrvTx()
1302 BnxeLogDbg(pUM, "*** %s ***", __func__); in BnxeFcoePrvTx()
1311 rc = BnxeTxSendMblk(pUM, FCOE_CID(pLM), pMblk, flags, vlan_tag); in BnxeFcoePrvTx()
1336 um_device_t * pUM = (um_device_t *)ddi_get_driver_private(pDev); in BnxeFcoePrvPoll() local
1337 RxQueue * pRxQ = &pUM->rxq[FCOE_CID(&pUM->lm_dev)]; in BnxeFcoePrvPoll()
1341 if (pUM == NULL || pUM->pDev != pDev) in BnxeFcoePrvPoll()
1347 VERIFY_FCOE_BINDING(pUM); in BnxeFcoePrvPoll()
1349 BnxeLogDbg(pUM, "*** %s ***", __func__); in BnxeFcoePrvPoll()
1353 BnxeLogWarn(pUM, "Polling on FCoE ring %d when NOT in poll mode!", idx); in BnxeFcoePrvPoll()
1359 BnxePollRxRingFCOE(pUM); in BnxeFcoePrvPoll()
1372 um_device_t * pUM = (um_device_t *)ddi_get_driver_private(pDev); in BnxeFcoePrvSendWqes() local
1375 if (pUM == NULL || pUM->pDev != pDev) in BnxeFcoePrvSendWqes()
1381 VERIFY_FCOE_BINDING(pUM); in BnxeFcoePrvSendWqes()
1385 BnxeLogWarn(pUM, "Invalid WQE array"); in BnxeFcoePrvSendWqes()
1389 BnxeLogDbg(pUM, "*** %s ***", __func__); in BnxeFcoePrvSendWqes()
1397 BnxeLogDbg(pUM, "*** %s - FCOE_KWQE_OPCODE_INIT", __func__); in BnxeFcoePrvSendWqes()
1405 BnxeLogWarn(pUM, "FCoE Init kwqes error"); in BnxeFcoePrvSendWqes()
1406 pUM->fcoe.stats.initWqeTxErr++; in BnxeFcoePrvSendWqes()
1410 if (!BnxeFcoeInitWqe(pUM, &kwqes[kwqeCnt])) in BnxeFcoePrvSendWqes()
1412 BnxeLogWarn(pUM, "Failed to init FCoE Init WQE work"); in BnxeFcoePrvSendWqes()
1422 BnxeLogDbg(pUM, "*** %s - FCOE_KWQE_OPCODE_OFFLOAD_CONN1", __func__); in BnxeFcoePrvSendWqes()
1432 BnxeLogWarn(pUM, "FCoE Offload Conn kwqes error"); in BnxeFcoePrvSendWqes()
1433 pUM->fcoe.stats.offloadConnWqeTxErr++; in BnxeFcoePrvSendWqes()
1437 if (!BnxeFcoeOffloadConnWqe(pUM, &kwqes[kwqeCnt])) in BnxeFcoePrvSendWqes()
1439 BnxeLogWarn(pUM, "Failed to init FCoE Offload Conn WQE work"); in BnxeFcoePrvSendWqes()
1449 BnxeLogDbg(pUM, "*** %s - FCOE_KWQE_OPCODE_ENABLE_CONN", __func__); in BnxeFcoePrvSendWqes()
1451 if (!BnxeFcoeEnableConnWqe(pUM, &kwqes[kwqeCnt])) in BnxeFcoePrvSendWqes()
1453 BnxeLogWarn(pUM, "Failed to init FCoE Enable Conn WQE work"); in BnxeFcoePrvSendWqes()
1463 BnxeLogDbg(pUM, "*** %s - FCOE_KWQE_OPCODE_DISABLE_CONN", __func__); in BnxeFcoePrvSendWqes()
1465 if (!BnxeFcoeDisableConnWqe(pUM, &kwqes[kwqeCnt])) in BnxeFcoePrvSendWqes()
1467 BnxeLogWarn(pUM, "Failed to init FCoE Disable Conn WQE work"); in BnxeFcoePrvSendWqes()
1477 BnxeLogDbg(pUM, "*** %s - FCOE_KWQE_OPCODE_DESTROY_CONN", __func__); in BnxeFcoePrvSendWqes()
1479 if (!BnxeFcoeDestroyConnWqe(pUM, &kwqes[kwqeCnt])) in BnxeFcoePrvSendWqes()
1481 BnxeLogWarn(pUM, "Failed to init FCoE Destroy Conn WQE work"); in BnxeFcoePrvSendWqes()
1491 BnxeLogDbg(pUM, "*** %s - FCOE_KWQE_OPCODE_DESTROY", __func__); in BnxeFcoePrvSendWqes()
1493 if (!BnxeFcoeDestroyWqe(pUM, &kwqes[kwqeCnt])) in BnxeFcoePrvSendWqes()
1495 BnxeLogWarn(pUM, "Failed to init FCoE Destroy WQE work"); in BnxeFcoePrvSendWqes()
1505 BnxeLogDbg(pUM, "*** %s - FCOE_KWQE_OPCODE_STAT", __func__); in BnxeFcoePrvSendWqes()
1507 if (!BnxeFcoeStatWqe(pUM, &kwqes[kwqeCnt])) in BnxeFcoePrvSendWqes()
1509 BnxeLogWarn(pUM, "Failed to init FCoE Stat WQE work"); in BnxeFcoePrvSendWqes()
1519 BnxeDbgBreakMsg(pUM, "Invalid KWQE opcode"); in BnxeFcoePrvSendWqes()
1533 um_device_t * pUM = (um_device_t *)ddi_get_driver_private(pDev); in BnxeFcoePrvMapMailboxq() local
1536 if (pUM == NULL || pUM->pDev != pDev) in BnxeFcoePrvMapMailboxq()
1542 VERIFY_FCOE_BINDING(pUM); in BnxeFcoePrvMapMailboxq()
1544 BnxeLogDbg(pUM, "*** %s ***", __func__); in BnxeFcoePrvMapMailboxq()
1548 …*ppMap = (void *)((u8_t *)pUM->lm_dev.context_info->array[SW_CID(cid)].cid_resc.mapped_cid_bar_add… in BnxeFcoePrvMapMailboxq()
1549 *pAccHandle = pUM->lm_dev.context_info->array[SW_CID(cid)].cid_resc.reg_handle; in BnxeFcoePrvMapMailboxq()
1553 BnxeLogWarn(pUM, "Cannot map mailboxq base address for FCoE"); in BnxeFcoePrvMapMailboxq()
1566 um_device_t * pUM = (um_device_t *)ddi_get_driver_private(pDev); in BnxeFcoePrvUnmapMailboxq() local
1571 if (pUM == NULL || pUM->pDev != pDev) in BnxeFcoePrvUnmapMailboxq()
1577 VERIFY_FCOE_BINDING(pUM); in BnxeFcoePrvUnmapMailboxq()
1579 BnxeLogDbg(pUM, "*** %s ***", __func__); in BnxeFcoePrvUnmapMailboxq()
1582 …pTmp = (void *)((u8_t *)pUM->lm_dev.context_info->array[SW_CID(cid)].cid_resc.mapped_cid_bar_addr … in BnxeFcoePrvUnmapMailboxq()
1583 tmpAcc = pUM->lm_dev.context_info->array[SW_CID(cid)].cid_resc.reg_handle; in BnxeFcoePrvUnmapMailboxq()
1587 BnxeLogWarn(pUM, "Invalid map info for FCoE (%p)", pMap); in BnxeFcoePrvUnmapMailboxq()
1595 int BnxeFcoeInit(um_device_t * pUM) in BnxeFcoeInit() argument
1601 BnxeLogInfo(pUM, "Starting FCoE"); in BnxeFcoeInit()
1603 if (!BNXE_FCOE(pUM)) in BnxeFcoeInit()
1605 BnxeLogWarn(pUM, "FCoE not supported on this device"); in BnxeFcoeInit()
1610 if (pUM->fcoe.pDev) in BnxeFcoeInit()
1612 BnxeLogWarn(pUM, "FCoE child node already initialized"); in BnxeFcoeInit()
1616 if (ndi_devi_alloc(pUM->pDev, in BnxeFcoeInit()
1619 &pUM->fcoe.pDev) != NDI_SUCCESS) in BnxeFcoeInit()
1621 BnxeLogWarn(pUM, "Failed to allocate a child node for FCoE"); in BnxeFcoeInit()
1622 pUM->fcoe.pDev = NULL; in BnxeFcoeInit()
1627 pUM->fcoe.pDev, in BnxeFcoeInit()
1632 BnxeLogWarn(pUM, "Failed to set the name string for FCoE"); in BnxeFcoeInit()
1635 pUM->fcoe.pDev = NULL; in BnxeFcoeInit()
1639 CLIENT_DEVI_SET(pUM, LM_CLI_IDX_FCOE); in BnxeFcoeInit()
1647 memset(&pUM->fcoe.wwn, 0, sizeof(BnxeWwnInfo)); in BnxeFcoeInit()
1648 pUM->fcoe.wwn.fcp_pwwn_provided = B_TRUE; in BnxeFcoeInit()
1649 memcpy(pUM->fcoe.wwn.fcp_pwwn, pUM->lm_dev.hw_info.fcoe_wwn_port_name, in BnxeFcoeInit()
1651 pUM->fcoe.wwn.fcp_nwwn_provided = B_TRUE; in BnxeFcoeInit()
1652 memcpy(pUM->fcoe.wwn.fcp_nwwn, pUM->lm_dev.hw_info.fcoe_wwn_node_name, in BnxeFcoeInit()
1655 BnxeLogInfo(pUM, "Created the FCoE child node %s@%s", in BnxeFcoeInit()
1656 BNXEF_NAME, ddi_get_name_addr(pUM->pDev)); in BnxeFcoeInit()
1658 if ((rc = ndi_devi_online(pUM->fcoe.pDev, NDI_ONLINE_ATTACH)) != in BnxeFcoeInit()
1666 CLIENT_DEVI_RESET(pUM, LM_CLI_IDX_FCOE); in BnxeFcoeInit()
1667 pUM->fcoe.pDev = NULL; in BnxeFcoeInit()
1668 BnxeLogInfo(pUM, "Unable to bind the QLogic FCoE driver (%d)", rc); in BnxeFcoeInit()
1674 if (ndi_devi_bind_driver(pUM->fcoe.pDev, 0) != NDI_SUCCESS) in BnxeFcoeInit()
1676 BnxeLogInfo(pUM, "Unable to bind the QLogic FCoE driver"); in BnxeFcoeInit()
1684 int BnxeFcoeFini(um_device_t * pUM) in BnxeFcoeFini() argument
1689 BnxeLogInfo(pUM, "Stopping FCoE"); in BnxeFcoeFini()
1691 if (!BNXE_FCOE(pUM)) in BnxeFcoeFini()
1693 BnxeLogWarn(pUM, "FCoE not supported on this device"); in BnxeFcoeFini()
1697 if (CLIENT_BOUND(pUM, LM_CLI_IDX_FCOE)) in BnxeFcoeFini()
1699 if (pUM->fcoe.pDev == NULL) in BnxeFcoeFini()
1701 BnxeLogWarn(pUM, "FCoE Client bound and pDev is NULL, FINI failed! %s@%s", in BnxeFcoeFini()
1702 BNXEF_NAME, ddi_get_name_addr(pUM->pDev)); in BnxeFcoeFini()
1705 else if (pUM->fcoe.bind.cliCtl == NULL) in BnxeFcoeFini()
1707 BnxeLogWarn(pUM, "FCoE Client bound and cliCtl is NULL, FINI failed! %s@%s", in BnxeFcoeFini()
1708 BNXEF_NAME, ddi_get_name_addr(pUM->pDev)); in BnxeFcoeFini()
1711 else if (pUM->fcoe.bind.cliCtl(pUM->fcoe.pDev, in BnxeFcoeFini()
1716 BnxeLogWarn(pUM, "FCoE Client bound and UNLOAD failed! %s@%s", in BnxeFcoeFini()
1717 BNXEF_NAME, ddi_get_name_addr(pUM->pDev)); in BnxeFcoeFini()
1734 if (pUM->fcoe.pDev) in BnxeFcoeFini()
1736 CLIENT_DEVI_RESET(pUM, LM_CLI_IDX_FCOE); in BnxeFcoeFini()
1738 BnxeLogWarn(pUM, "Bringing down QLogic FCoE driver %s@%s", in BnxeFcoeFini()
1739 BNXEF_NAME, ddi_get_name_addr(pUM->pDev)); in BnxeFcoeFini()
1742 if (ndi_devi_offline(pUM->fcoe.pDev, NDI_DEVI_REMOVE) != NDI_SUCCESS) in BnxeFcoeFini()
1744 BnxeLogWarn(pUM, "Failed to bring the QLogic FCoE driver offline %s@%s", in BnxeFcoeFini()
1745 BNXEF_NAME, ddi_get_name_addr(pUM->pDev)); in BnxeFcoeFini()
1749 ndi_devi_offline(pUM->fcoe.pDev, NDI_DEVI_REMOVE); in BnxeFcoeFini()
1750 if (nullDev) pUM->fcoe.pDev = NULL; in BnxeFcoeFini()
1753 memset(&pUM->fcoe.wwn, 0, sizeof(BnxeWwnInfo)); in BnxeFcoeFini()
1755 BnxeLogInfo(pUM, "Destroyed the FCoE child node %s@%s", in BnxeFcoeFini()
1756 BNXEF_NAME, ddi_get_name_addr(pUM->pDev)); in BnxeFcoeFini()
1763 void BnxeFcoeStartStop(um_device_t * pUM) in BnxeFcoeStartStop() argument
1767 if (!BNXE_FCOE(pUM)) in BnxeFcoeStartStop()
1769 BnxeLogWarn(pUM, "FCoE is not supported on this device"); in BnxeFcoeStartStop()
1773 if (pUM->devParams.fcoeEnable) in BnxeFcoeStartStop()
1775 BnxeFcoeInit(pUM); in BnxeFcoeStartStop()
1779 BnxeFcoeFini(pUM); in BnxeFcoeStartStop()