Lines Matching refs:lstate

104 static void tavor_loopback_free_qps(tavor_loopback_state_t *lstate);
105 static void tavor_loopback_free_state(tavor_loopback_state_t *lstate);
107 tavor_loopback_state_t *lstate);
108 static void tavor_loopback_init_qp_info(tavor_loopback_state_t *lstate,
110 static int tavor_loopback_alloc_mem(tavor_loopback_state_t *lstate,
112 static int tavor_loopback_alloc_qps(tavor_loopback_state_t *lstate,
114 static int tavor_loopback_modify_qp(tavor_loopback_state_t *lstate,
118 static int tavor_loopback_post_send(tavor_loopback_state_t *lstate,
120 static int tavor_loopback_poll_cq(tavor_loopback_state_t *lstate,
845 tavor_loopback_state_t lstate; in tavor_ioctl_loopback() local
852 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(lstate)) in tavor_ioctl_loopback()
888 bzero(&lstate, sizeof (tavor_loopback_state_t)); in tavor_ioctl_loopback()
929 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
933 lstate.tls_port = pi.p_port_num; in tavor_ioctl_loopback()
934 lstate.tls_lid = pi.p_base_lid; in tavor_ioctl_loopback()
935 lstate.tls_pkey_ix = (pi.p_linkstate == TAVOR_PORT_LINK_ACTIVE) ? 1 : 0; in tavor_ioctl_loopback()
936 lstate.tls_state = state; in tavor_ioctl_loopback()
937 lstate.tls_retry = lb.tlb_num_retry; in tavor_ioctl_loopback()
950 lstate.tls_timeout = lb.tlb_timeout; in tavor_ioctl_loopback()
951 max_usec = (4096 * (1 << lstate.tls_timeout)) / 1000; in tavor_ioctl_loopback()
952 max_usec = max_usec * (lstate.tls_retry + 1); in tavor_ioctl_loopback()
967 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
972 if (tavor_loopback_init(state, &lstate) != 0) { in tavor_ioctl_loopback()
973 lb.tlb_error_type = lstate.tls_err; in tavor_ioctl_loopback()
975 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
980 if (tavor_loopback_alloc_mem(&lstate, &lstate.tls_tx, in tavor_ioctl_loopback()
985 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
990 if (tavor_loopback_alloc_mem(&lstate, &lstate.tls_rx, in tavor_ioctl_loopback()
995 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1000 if (ddi_copyin((void *)lb.tlb_send_buf, lstate.tls_tx.tlc_buf, in tavor_ioctl_loopback()
1004 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1009 lstate.tls_err = TAVOR_LOOPBACK_XMIT_SEND_CQ_ALLOC_FAIL; in tavor_ioctl_loopback()
1010 if (tavor_loopback_alloc_qps(&lstate, &lstate.tls_tx) != 0) { in tavor_ioctl_loopback()
1011 lb.tlb_error_type = lstate.tls_err; in tavor_ioctl_loopback()
1013 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1018 lstate.tls_err = TAVOR_LOOPBACK_RECV_SEND_CQ_ALLOC_FAIL; in tavor_ioctl_loopback()
1019 if (tavor_loopback_alloc_qps(&lstate, &lstate.tls_rx) != 0) { in tavor_ioctl_loopback()
1020 lb.tlb_error_type = lstate.tls_err; in tavor_ioctl_loopback()
1022 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1027 lstate.tls_err = TAVOR_LOOPBACK_XMIT_QP_INIT_FAIL; in tavor_ioctl_loopback()
1028 if (tavor_loopback_modify_qp(&lstate, &lstate.tls_tx, in tavor_ioctl_loopback()
1029 lstate.tls_rx.tlc_qp_num) != 0) { in tavor_ioctl_loopback()
1030 lb.tlb_error_type = lstate.tls_err; in tavor_ioctl_loopback()
1032 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1037 lstate.tls_err = TAVOR_LOOPBACK_RECV_QP_INIT_FAIL; in tavor_ioctl_loopback()
1038 if (tavor_loopback_modify_qp(&lstate, &lstate.tls_rx, in tavor_ioctl_loopback()
1039 lstate.tls_tx.tlc_qp_num) != 0) { in tavor_ioctl_loopback()
1040 lb.tlb_error_type = lstate.tls_err; in tavor_ioctl_loopback()
1042 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1049 lstate.tls_err = 0; in tavor_ioctl_loopback()
1050 bzero(lstate.tls_rx.tlc_buf, lb.tlb_buf_sz); in tavor_ioctl_loopback()
1053 if (tavor_loopback_post_send(&lstate, &lstate.tls_tx, in tavor_ioctl_loopback()
1054 &lstate.tls_rx) != IBT_SUCCESS) { in tavor_ioctl_loopback()
1057 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1065 ret = tavor_loopback_poll_cq(&lstate, &lstate.tls_tx); in tavor_ioctl_loopback()
1069 if (ddi_copyout(lstate.tls_rx.tlc_buf, in tavor_ioctl_loopback()
1070 lb.tlb_fail_buf, lstate.tls_tx.tlc_buf_sz, in tavor_ioctl_loopback()
1075 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1082 if (bcmp(lstate.tls_tx.tlc_buf, lstate.tls_rx.tlc_buf, in tavor_ioctl_loopback()
1088 if (ddi_copyout(lstate.tls_rx.tlc_buf, in tavor_ioctl_loopback()
1089 lb.tlb_fail_buf, lstate.tls_tx.tlc_buf_sz, in tavor_ioctl_loopback()
1094 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
1099 lstate.tls_err = TAVOR_LOOPBACK_SUCCESS; in tavor_ioctl_loopback()
1109 tavor_loopback_free_state(&lstate); in tavor_ioctl_loopback()
2019 tavor_loopback_free_qps(tavor_loopback_state_t *lstate) in tavor_loopback_free_qps() argument
2023 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*lstate)) in tavor_loopback_free_qps()
2025 if (lstate->tls_tx.tlc_qp_hdl != NULL) { in tavor_loopback_free_qps()
2026 (void) tavor_qp_free(lstate->tls_state, in tavor_loopback_free_qps()
2027 &lstate->tls_tx.tlc_qp_hdl, IBC_FREE_QP_AND_QPN, NULL, in tavor_loopback_free_qps()
2030 if (lstate->tls_rx.tlc_qp_hdl != NULL) { in tavor_loopback_free_qps()
2031 (void) tavor_qp_free(lstate->tls_state, in tavor_loopback_free_qps()
2032 &lstate->tls_rx.tlc_qp_hdl, IBC_FREE_QP_AND_QPN, NULL, in tavor_loopback_free_qps()
2035 lstate->tls_tx.tlc_qp_hdl = NULL; in tavor_loopback_free_qps()
2036 lstate->tls_rx.tlc_qp_hdl = NULL; in tavor_loopback_free_qps()
2038 if (lstate->tls_tx.tlc_cqhdl[i] != NULL) { in tavor_loopback_free_qps()
2039 (void) tavor_cq_free(lstate->tls_state, in tavor_loopback_free_qps()
2040 &lstate->tls_tx.tlc_cqhdl[i], TAVOR_NOSLEEP); in tavor_loopback_free_qps()
2042 if (lstate->tls_rx.tlc_cqhdl[i] != NULL) { in tavor_loopback_free_qps()
2043 (void) tavor_cq_free(lstate->tls_state, in tavor_loopback_free_qps()
2044 &lstate->tls_rx.tlc_cqhdl[i], TAVOR_NOSLEEP); in tavor_loopback_free_qps()
2046 lstate->tls_tx.tlc_cqhdl[i] = NULL; in tavor_loopback_free_qps()
2047 lstate->tls_rx.tlc_cqhdl[i] = NULL; in tavor_loopback_free_qps()
2055 tavor_loopback_free_state(tavor_loopback_state_t *lstate) in tavor_loopback_free_state() argument
2057 tavor_loopback_free_qps(lstate); in tavor_loopback_free_state()
2058 if (lstate->tls_tx.tlc_mrhdl != NULL) { in tavor_loopback_free_state()
2059 (void) tavor_mr_deregister(lstate->tls_state, in tavor_loopback_free_state()
2060 &lstate->tls_tx.tlc_mrhdl, TAVOR_MR_DEREG_ALL, in tavor_loopback_free_state()
2063 if (lstate->tls_rx.tlc_mrhdl != NULL) { in tavor_loopback_free_state()
2064 (void) tavor_mr_deregister(lstate->tls_state, in tavor_loopback_free_state()
2065 &lstate->tls_rx.tlc_mrhdl, TAVOR_MR_DEREG_ALL, in tavor_loopback_free_state()
2068 if (lstate->tls_pd_hdl != NULL) { in tavor_loopback_free_state()
2069 (void) tavor_pd_free(lstate->tls_state, &lstate->tls_pd_hdl); in tavor_loopback_free_state()
2071 if (lstate->tls_tx.tlc_buf != NULL) { in tavor_loopback_free_state()
2072 kmem_free(lstate->tls_tx.tlc_buf, lstate->tls_tx.tlc_buf_sz); in tavor_loopback_free_state()
2074 if (lstate->tls_rx.tlc_buf != NULL) { in tavor_loopback_free_state()
2075 kmem_free(lstate->tls_rx.tlc_buf, lstate->tls_rx.tlc_buf_sz); in tavor_loopback_free_state()
2077 bzero(lstate, sizeof (tavor_loopback_state_t)); in tavor_loopback_free_state()
2084 tavor_loopback_init(tavor_state_t *state, tavor_loopback_state_t *lstate) in tavor_loopback_init() argument
2086 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*lstate)) in tavor_loopback_init()
2088 lstate->tls_hca_hdl = (ibc_hca_hdl_t)state; in tavor_loopback_init()
2089 lstate->tls_status = tavor_pd_alloc(lstate->tls_state, in tavor_loopback_init()
2090 &lstate->tls_pd_hdl, TAVOR_NOSLEEP); in tavor_loopback_init()
2091 if (lstate->tls_status != IBT_SUCCESS) { in tavor_loopback_init()
2092 lstate->tls_err = TAVOR_LOOPBACK_PROT_DOMAIN_ALLOC_FAIL; in tavor_loopback_init()
2103 tavor_loopback_init_qp_info(tavor_loopback_state_t *lstate, in tavor_loopback_init_qp_info() argument
2122 lstate->tls_port; in tavor_loopback_init_qp_info()
2124 lstate->tls_pkey_ix; in tavor_loopback_init_qp_info()
2126 lstate->tls_timeout; in tavor_loopback_init_qp_info()
2132 lstate->tls_lid; in tavor_loopback_init_qp_info()
2133 comm->tlc_qp_info.qp_transport.rc.rc_retry_cnt = lstate->tls_retry; in tavor_loopback_init_qp_info()
2147 tavor_loopback_alloc_mem(tavor_loopback_state_t *lstate, in tavor_loopback_alloc_mem() argument
2166 comm->tlc_status = tavor_mr_register(lstate->tls_state, in tavor_loopback_alloc_mem()
2167 lstate->tls_pd_hdl, &comm->tlc_memattr, &comm->tlc_mrhdl, NULL); in tavor_loopback_alloc_mem()
2184 tavor_loopback_alloc_qps(tavor_loopback_state_t *lstate, in tavor_loopback_alloc_qps() argument
2191 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*lstate)) in tavor_loopback_alloc_qps()
2197 comm->tlc_status = tavor_cq_alloc(lstate->tls_state, in tavor_loopback_alloc_qps()
2201 lstate->tls_err += i; in tavor_loopback_alloc_qps()
2207 tavor_loopback_init_qp_info(lstate, comm); in tavor_loopback_alloc_qps()
2208 comm->tlc_qp_attr.qp_pd_hdl = (ibt_pd_hdl_t)lstate->tls_pd_hdl; in tavor_loopback_alloc_qps()
2218 comm->tlc_status = tavor_qp_alloc(lstate->tls_state, &qpinfo, in tavor_loopback_alloc_qps()
2225 lstate->tls_err += 2; in tavor_loopback_alloc_qps()
2235 tavor_loopback_modify_qp(tavor_loopback_state_t *lstate, in tavor_loopback_modify_qp() argument
2239 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*lstate)) in tavor_loopback_modify_qp()
2242 tavor_loopback_init_qp_info(lstate, comm); in tavor_loopback_modify_qp()
2244 comm->tlc_status = tavor_qp_modify(lstate->tls_state, comm->tlc_qp_hdl, in tavor_loopback_modify_qp()
2256 = lstate->tls_lid; in tavor_loopback_modify_qp()
2258 comm->tlc_status = tavor_qp_modify(lstate->tls_state, comm->tlc_qp_hdl, in tavor_loopback_modify_qp()
2261 lstate->tls_err += 1; in tavor_loopback_modify_qp()
2268 comm->tlc_status = tavor_qp_modify(lstate->tls_state, comm->tlc_qp_hdl, in tavor_loopback_modify_qp()
2271 lstate->tls_err += 2; in tavor_loopback_modify_qp()
2317 tavor_loopback_post_send(tavor_loopback_state_t *lstate, in tavor_loopback_post_send() argument
2344 ret = tavor_post_send(lstate->tls_state, tx->tlc_qp_hdl, &tx->tlc_wr, in tavor_loopback_post_send()
2356 tavor_loopback_poll_cq(tavor_loopback_state_t *lstate, in tavor_loopback_poll_cq() argument
2363 comm->tlc_status = tavor_cq_poll(lstate->tls_state, in tavor_loopback_poll_cq()