Lines Matching defs:bfa
36 if ((__itnim)->bfa->fcs) \
39 bfa_cb_queue((__itnim)->bfa, &(__itnim)->hcb_qe, \
45 if ((__itnim)->bfa->fcs) \
48 bfa_cb_queue((__itnim)->bfa, &(__itnim)->hcb_qe, \
54 if ((__itnim)->bfa->fcs) \
57 bfa_cb_queue((__itnim)->bfa, &(__itnim)->hcb_qe, \
117 BFA_IOIM_SM_HCB = 13, /* bfa callback complete */
134 bfa_cb_queue((__tskim)->bfa, &(__tskim)->hcb_qe, __cbfn, (__tskim));\
312 struct bfa_s *bfa = fcp->bfa;
314 bfa_trc(bfa, cfg->drvcfg.path_tov);
315 bfa_trc(bfa, cfg->fwcfg.num_rports);
316 bfa_trc(bfa, cfg->fwcfg.num_ioim_reqs);
317 bfa_trc(bfa, cfg->fwcfg.num_tskim_reqs);
320 fcpim->bfa = bfa;
350 bfa_fcpim_path_tov_set(struct bfa_s *bfa, u16 path_tov)
352 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
360 bfa_fcpim_path_tov_get(struct bfa_s *bfa)
362 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
421 bfa_fcpim_port_iostats(struct bfa_s *bfa,
424 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
463 bfa_fcpim_profile_on(struct bfa_s *bfa, time64_t time)
466 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
482 bfa_fcpim_profile_off(struct bfa_s *bfa)
484 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
493 bfa_fcpim_qdepth_get(struct bfa_s *bfa)
495 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
510 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
511 bfa_trc(itnim->bfa, event);
521 bfa_sm_fault(itnim->bfa, event);
531 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
532 bfa_trc(itnim->bfa, event);
552 bfa_sm_fault(itnim->bfa, event);
562 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
563 bfa_trc(itnim->bfa, event);
589 bfa_sm_fault(itnim->bfa, event);
597 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
598 bfa_trc(itnim->bfa, event);
624 bfa_sm_fault(itnim->bfa, event);
635 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
636 bfa_trc(itnim->bfa, event);
652 bfa_sm_fault(itnim->bfa, event);
662 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
663 bfa_trc(itnim->bfa, event);
694 bfa_sm_fault(itnim->bfa, event);
704 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
705 bfa_trc(itnim->bfa, event);
725 bfa_sm_fault(itnim->bfa, event);
736 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
737 bfa_trc(itnim->bfa, event);
762 bfa_sm_fault(itnim->bfa, event);
773 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
774 bfa_trc(itnim->bfa, event);
790 bfa_sm_fault(itnim->bfa, event);
800 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
801 bfa_trc(itnim->bfa, event);
819 bfa_sm_fault(itnim->bfa, event);
827 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
828 bfa_trc(itnim->bfa, event);
847 bfa_sm_fault(itnim->bfa, event);
857 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
858 bfa_trc(itnim->bfa, event);
879 bfa_sm_fault(itnim->bfa, event);
887 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
888 bfa_trc(itnim->bfa, event);
912 bfa_sm_fault(itnim->bfa, event);
922 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
923 bfa_trc(itnim->bfa, event);
933 bfa_sm_fault(itnim->bfa, event);
941 bfa_trc(itnim->bfa, itnim->rport->rport_tag);
942 bfa_trc(itnim->bfa, event);
957 bfa_sm_fault(itnim->bfa, event);
1108 struct bfa_s *bfa = fcpim->bfa;
1120 itnim->bfa = bfa;
1123 itnim->rport = BFA_RPORT_FROM_TAG(bfa, i);
1157 m = bfa_reqq_next(itnim->bfa, itnim->reqq);
1159 bfa_reqq_wait(itnim->bfa, itnim->reqq, &itnim->reqq_wait);
1164 bfa_fn_lpu(itnim->bfa));
1174 bfa_reqq_produce(itnim->bfa, itnim->reqq, m->mh);
1186 m = bfa_reqq_next(itnim->bfa, itnim->reqq);
1188 bfa_reqq_wait(itnim->bfa, itnim->reqq, &itnim->reqq_wait);
1193 bfa_fn_lpu(itnim->bfa));
1200 bfa_reqq_produce(itnim->bfa, itnim->reqq, m->mh);
1292 bfa_timer_start(itnim->bfa, &itnim->timer,
1331 struct bfa_fcpim_s *fcpim = BFA_FCPIM(itnim->bfa);
1355 bfa_itnim_isr(struct bfa_s *bfa, struct bfi_msg_s *m)
1357 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
1361 bfa_trc(bfa, m->mhdr.msg_id);
1390 bfa_trc(bfa, m->mhdr.msg_id);
1400 bfa_itnim_create(struct bfa_s *bfa, struct bfa_rport_s *rport, void *ditn)
1402 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
1405 bfa_itn_create(bfa, rport, bfa_itnim_isr);
1467 fcpim = BFA_FCPIM(itnim->bfa);
1475 bfa_io_profile_start_time(itnim->bfa);
1515 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe,
1543 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe,
1554 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe,
1559 bfa_sm_fault(ioim->bfa, event);
1569 bfa_trc(ioim->bfa, ioim->iotag);
1570 bfa_trc(ioim->bfa, event);
1583 bfa_sgpg_wcancel(ioim->bfa, &ioim->iosp->sgpg_wqe);
1584 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
1591 bfa_sgpg_wcancel(ioim->bfa, &ioim->iosp->sgpg_wqe);
1593 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_abort,
1599 bfa_sgpg_wcancel(ioim->bfa, &ioim->iosp->sgpg_wqe);
1601 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
1606 bfa_sm_fault(ioim->bfa, event);
1620 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe,
1627 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_comp,
1634 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_comp,
1647 bfa_reqq_wait(ioim->bfa, ioim->reqq,
1661 bfa_reqq_wait(ioim->bfa, ioim->reqq,
1669 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
1678 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe,
1687 bfa_sm_fault(ioim->bfa, event);
1717 bfa_reqq_wait(ioim->bfa, ioim->reqq,
1725 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe,
1734 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_abort,
1739 bfa_sm_fault(ioim->bfa, event);
1749 bfa_trc(ioim->bfa, ioim->iotag);
1750 bfa_trc(ioim->bfa, event);
1761 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_abort,
1768 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_abort,
1775 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_abort,
1788 bfa_reqq_wait(ioim->bfa, ioim->reqq,
1796 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
1801 bfa_sm_fault(ioim->bfa, event);
1812 bfa_trc(ioim->bfa, ioim->iotag);
1813 bfa_trc(ioim->bfa, event);
1831 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, ioim->io_cbfn, ioim);
1837 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, ioim->io_cbfn, ioim);
1843 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, ioim->io_cbfn, ioim);
1850 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
1862 bfa_sm_fault(ioim->bfa, event);
1872 bfa_trc(ioim->bfa, ioim->iotag);
1873 bfa_trc(ioim->bfa, event);
1885 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_abort,
1892 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
1901 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
1906 bfa_sm_fault(ioim->bfa, event);
1916 bfa_trc(ioim->bfa, ioim->iotag);
1917 bfa_trc(ioim->bfa, event);
1936 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_abort,
1944 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_abort,
1952 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
1957 bfa_sm_fault(ioim->bfa, event);
1967 bfa_trc(ioim->bfa, ioim->iotag);
1968 bfa_trc(ioim->bfa, event);
1987 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, ioim->io_cbfn, ioim);
1994 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, ioim->io_cbfn, ioim);
2002 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, __bfa_cb_ioim_failed,
2007 bfa_sm_fault(ioim->bfa, event);
2012 * IO bfa callback is pending.
2031 bfa_sm_fault(ioim->bfa, event);
2036 * IO bfa callback is pending. IO resource cannot be freed.
2041 bfa_trc(ioim->bfa, ioim->iotag);
2042 bfa_trc(ioim->bfa, event);
2064 bfa_sm_fault(ioim->bfa, event);
2074 bfa_trc(ioim->bfa, ioim->iotag);
2075 bfa_trc(ioim->bfa, event);
2091 bfa_sm_fault(ioim->bfa, event);
2101 bfa_ioim_lm_init(struct bfa_s *bfa)
2106 if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_MINCFG)
2109 lunm_list = bfa_get_lun_mask_list(bfa);
2127 bfa_cb_ioim_good_comp(ioim->bfa->bfad, ioim->dio);
2170 bfa_cb_ioim_done(ioim->bfa->bfad, ioim->dio, m->io_status,
2175 bfa_fcpim_lunmask_rp_update(struct bfa_s *bfa, wwn_t lp_wwn, wwn_t rp_wwn,
2181 if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_MINCFG)
2184 lun_list = bfa_get_lun_mask_list(bfa);
2200 bfa_ioim_lm_set_ua(struct bfa_s *bfa)
2205 lunm_list = bfa_get_lun_mask_list(bfa);
2214 bfa_fcpim_lunmask_update(struct bfa_s *bfa, u32 update)
2218 bfa_trc(bfa, bfa_get_lun_mask_status(bfa));
2219 if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_MINCFG)
2222 if (bfa_get_lun_mask_status(bfa) == update)
2225 lun_mask = bfa_get_lun_mask(bfa);
2228 if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_ENABLED)
2229 bfa_ioim_lm_set_ua(bfa);
2231 return bfa_dconf_update(bfa);
2235 bfa_fcpim_lunmask_clear(struct bfa_s *bfa)
2240 bfa_trc(bfa, bfa_get_lun_mask_status(bfa));
2241 if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_MINCFG)
2244 lunm_list = bfa_get_lun_mask_list(bfa);
2248 bfa_rport_unset_lunmask(bfa,
2249 BFA_RPORT_FROM_TAG(bfa, lunm_list[i].rp_tag));
2254 return bfa_dconf_update(bfa);
2258 bfa_fcpim_lunmask_query(struct bfa_s *bfa, void *buf)
2262 bfa_trc(bfa, bfa_get_lun_mask_status(bfa));
2263 if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_MINCFG)
2266 lun_mask = bfa_get_lun_mask(bfa);
2272 bfa_fcpim_lunmask_add(struct bfa_s *bfa, u16 vf_id, wwn_t *pwwn,
2281 bfa_trc(bfa, bfa_get_lun_mask_status(bfa));
2282 if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_MINCFG)
2285 port = bfa_fcs_lookup_port(&((struct bfad_s *)bfa->bfad)->bfa_fcs,
2294 lunm_list = bfa_get_lun_mask_list(bfa);
2310 lunm_list[free_index].lp_tag = bfa_lps_get_tag_from_pid(bfa,
2330 return bfa_dconf_update(bfa);
2334 bfa_fcpim_lunmask_delete(struct bfa_s *bfa, u16 vf_id, wwn_t *pwwn,
2342 if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_MINCFG)
2345 bfa_trc(bfa, bfa_get_lun_mask_status(bfa));
2346 bfa_trc(bfa, *pwwn);
2347 bfa_trc(bfa, rpwwn);
2348 bfa_trc(bfa, scsilun_to_int((struct scsi_lun *)&lun));
2352 &((struct bfad_s *)bfa->bfad)->bfa_fcs,
2358 lunm_list = bfa_get_lun_mask_list(bfa);
2372 return bfa_dconf_update(bfa);
2396 bfa_cb_ioim_done(ioim->bfa->bfad, ioim->dio, BFI_IOIM_STS_ABORTED,
2411 bfa_cb_ioim_done(ioim->bfa->bfad, ioim->dio, BFI_IOIM_STS_PATHTOV,
2425 bfa_cb_ioim_abort(ioim->bfa->bfad, ioim->dio);
2461 m = bfa_reqq_next(ioim->bfa, ioim->reqq);
2464 bfa_reqq_wait(ioim->bfa, ioim->reqq,
2563 bfi_h2i_set(m->mh, BFI_MC_IOIM_READ, 0, bfa_fn_lpu(ioim->bfa));
2568 bfi_h2i_set(m->mh, BFI_MC_IOIM_WRITE, 0, bfa_fn_lpu(ioim->bfa));
2577 bfi_h2i_set(m->mh, BFI_MC_IOIM_IO, 0, bfa_fn_lpu(ioim->bfa));
2581 bfi_h2i_set(m->mh, BFI_MC_IOIM_IO, 0, bfa_fn_lpu(ioim->bfa));
2586 bfa_reqq_produce(ioim->bfa, ioim->reqq, m->mh);
2608 if (bfa_sgpg_malloc(ioim->bfa, &ioim->sgpg_q, nsgpgs)
2610 bfa_sgpg_wait(ioim->bfa, &ioim->iosp->sgpg_wqe, nsgpgs);
2632 m = bfa_reqq_next(ioim->bfa, ioim->reqq);
2644 bfi_h2i_set(m->mh, BFI_MC_IOIM, msgop, bfa_fn_lpu(ioim->bfa));
2651 bfa_reqq_produce(ioim->bfa, ioim->reqq, m->mh);
2720 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, ioim->io_cbfn, ioim);
2766 ioim->bfa = fcpim->bfa;
2779 bfa_ioim_isr(struct bfa_s *bfa, struct bfi_msg_s *m)
2781 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
2792 bfa_trc(ioim->bfa, ioim->iotag);
2793 bfa_trc(ioim->bfa, rsp->io_status);
2794 bfa_trc(ioim->bfa, rsp->reuse_io_tag);
2840 bfa_trc(ioim->bfa, rsp->abort_tag);
2841 bfa_trc(ioim->bfa, ioim->abort_tag);
2864 bfa_ioim_good_comp_isr(struct bfa_s *bfa, struct bfi_msg_s *m)
2866 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
2887 bfa_trc(ioim->bfa, ioim->iotag);
2897 bfa_trc(ioim->bfa, ioim->iotag);
2910 bfa_trc(ioim->bfa, ioim->iotag);
2921 bfa_trc(ioim->bfa, ioim->iotag);
2930 bfa_ioim_alloc(struct bfa_s *bfa, struct bfad_ioim_s *dio,
2933 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
2968 bfa_sgpg_mfree(ioim->bfa, &ioim->sgpg_q, ioim->nsgpgs);
2995 ioim->reqq = bfa_fcpim_ioredirect_enabled(ioim->bfa) ?
3008 bfa_trc(ioim->bfa, ioim->iotag);
3029 bfa_trc(tskim->bfa, tskim->tsk_tag << 16 | event);
3050 bfa_reqq_wait(tskim->bfa, tskim->itnim->reqq,
3056 bfa_sm_fault(tskim->bfa, event);
3067 bfa_trc(tskim->bfa, tskim->tsk_tag << 16 | event);
3080 bfa_reqq_wait(tskim->bfa, tskim->itnim->reqq,
3092 bfa_sm_fault(tskim->bfa, event);
3103 bfa_trc(tskim->bfa, tskim->tsk_tag << 16 | event);
3125 bfa_sm_fault(tskim->bfa, event);
3132 bfa_trc(tskim->bfa, tskim->tsk_tag << 16 | event);
3154 bfa_sm_fault(tskim->bfa, event);
3164 bfa_trc(tskim->bfa, tskim->tsk_tag << 16 | event);
3189 bfa_sm_fault(tskim->bfa, event);
3201 bfa_trc(tskim->bfa, tskim->tsk_tag << 16 | event);
3220 bfa_sm_fault(tskim->bfa, event);
3230 bfa_trc(tskim->bfa, tskim->tsk_tag << 16 | event);
3246 bfa_sm_fault(tskim->bfa, event);
3261 bfa_cb_tskim_done(tskim->bfa->bfad, tskim->dtsk, tskim->tsk_status);
3275 bfa_cb_tskim_done(tskim->bfa->bfad, tskim->dtsk,
3385 m = bfa_reqq_next(tskim->bfa, itnim->reqq);
3393 bfa_fn_lpu(tskim->bfa));
3404 bfa_reqq_produce(tskim->bfa, itnim->reqq, m->mh);
3420 m = bfa_reqq_next(tskim->bfa, itnim->reqq);
3428 bfa_fn_lpu(tskim->bfa));
3435 bfa_reqq_produce(tskim->bfa, itnim->reqq, m->mh);
3519 tskim->bfa = fcpim->bfa;
3533 bfa_tskim_isr(struct bfa_s *bfa, struct bfi_msg_s *m)
3535 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
3562 bfa_tskim_alloc(struct bfa_s *bfa, struct bfad_tskim_s *dtsk)
3564 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
3611 bfa_tskim_res_recfg(struct bfa_s *bfa, u16 num_tskim_fw)
3613 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
3625 struct bfa_s *bfa)
3627 struct bfa_fcp_mod_s *fcp = BFA_FCP_MOD(bfa);
3628 struct bfa_mem_kva_s *fcp_kva = BFA_MEM_FCP_KVA(bfa);
3682 bfa_fcp_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
3685 struct bfa_fcp_mod_s *fcp = BFA_FCP_MOD(bfa);
3693 fcp->bfa = bfa;
3709 bfa_iocfc_set_snsbase(bfa, idx, fcp->snsbase[idx].pa);
3725 bfa_fcp_iocdisable(struct bfa_s *bfa)
3727 struct bfa_fcp_mod_s *fcp = BFA_FCP_MOD(bfa);
3733 bfa_fcp_res_recfg(struct bfa_s *bfa, u16 num_ioim_fw, u16 max_ioim_fw)
3735 struct bfa_fcp_mod_s *mod = BFA_FCP_MOD(bfa);
3749 bfa_trc(bfa, mod->num_ioim_reqs);
3750 bfa_trc(bfa, num_ioim_fw);
3759 bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
3760 void (*isr)(struct bfa_s *bfa, struct bfi_msg_s *m))
3762 struct bfa_fcp_mod_s *fcp = BFA_FCP_MOD(bfa);
3773 bfa_itn_isr(struct bfa_s *bfa, struct bfi_msg_s *m)
3775 struct bfa_fcp_mod_s *fcp = BFA_FCP_MOD(bfa);
3783 itn->isr(bfa, m);
3822 bfa_fcpim_get_throttle_cfg(struct bfa_s *bfa, u16 drv_cfg_param)
3825 struct bfa_fcp_mod_s *fcp = BFA_FCP_MOD(bfa);
3835 tmp = bfa_dconf_read_data_valid(bfa) ? bfa_fcpim_read_throttle(bfa) : 0;
3843 bfa_fcpim_write_throttle(struct bfa_s *bfa, u16 value)
3845 if (!bfa_dconf_get_min_cfg(bfa)) {
3846 BFA_DCONF_MOD(bfa)->dconf->throttle_cfg.value = value;
3847 BFA_DCONF_MOD(bfa)->dconf->throttle_cfg.is_valid = 1;
3855 bfa_fcpim_read_throttle(struct bfa_s *bfa)
3858 &(BFA_DCONF_MOD(bfa)->dconf->throttle_cfg);
3860 return ((!bfa_dconf_get_min_cfg(bfa)) ?
3865 bfa_fcpim_throttle_set(struct bfa_s *bfa, u16 value)
3868 if ((bfa_dconf_get_min_cfg(bfa) == BFA_TRUE) ||
3869 (!bfa_dconf_read_data_valid(bfa)))
3872 bfa_fcpim_write_throttle(bfa, value);
3874 return bfa_dconf_update(bfa);
3878 bfa_fcpim_throttle_get(struct bfa_s *bfa, void *buf)
3880 struct bfa_fcpim_s *fcpim = BFA_FCPIM(bfa);
3883 if ((bfa_dconf_get_min_cfg(bfa) == BFA_TRUE) ||
3884 (!bfa_dconf_read_data_valid(bfa)))
3890 throttle.cfg_value = bfa_fcpim_read_throttle(bfa);