Lines Matching defs:mce

1148 #define	IBD_MCACHE_INSERT_FULL(state, mce) \
1149 list_insert_head(&state->id_mc_full, mce)
1150 #define IBD_MCACHE_INSERT_NON(state, mce) \
1151 list_insert_head(&state->id_mc_non, mce)
1156 #define IBD_MCACHE_PULLOUT_FULL(state, mce) \
1157 list_remove(&state->id_mc_full, mce)
1158 #define IBD_MCACHE_PULLOUT_NON(state, mce) \
1159 list_remove(&state->id_mc_non, mce)
1249 * the req buf contains in mce
1697 ibd_mce_t *mce;
1708 mce = IBD_MCACHE_FIND_FULL(state, mgid);
1709 if (mce != NULL) {
1711 return (mce);
1718 if ((mce = ibd_join_group(state, mgid, IB_MC_JSTATE_SEND_ONLY_NON)) !=
1721 return (mce);
1741 if ((mce = IBD_MCACHE_FIND_FULL(state, mgid)) != NULL) {
1744 return (mce);
1751 if ((mce = ibd_join_group(state, mgid, IB_MC_JSTATE_SEND_ONLY_NON)) !=
1754 return (mce);
1767 ibd_mce_t *mce = NULL;
1790 if ((mce = ibd_async_mcache(state, mac, &redirected)) ==
1885 * mce is set whenever an AH is being associated with a
1889 if (mce != NULL)
1890 ce->ac_mce = mce;
1936 ibd_mce_t *mce, *pmce;
1979 mce = list_head(&state->id_mc_full);
1980 while ((pmce = mce) != NULL) {
1981 mce = list_next(&state->id_mc_full, mce);
2002 mce = pace->ac_mce;
2004 ASSERT(mce == NULL);
2028 * processing the mce list.
2030 ASSERT(cycled && ((mce == NULL) || (mce->mc_jstate ==
2034 * Check if the fullmember mce needs to be torn down,
2038 * mce-freeing. tx_cleanup will put the AH into free
2044 if ((mce != NULL) && (mce->mc_fullreap))
2045 ibd_async_reap_group(state, mce,
2046 mce->mc_info.mc_adds_vect.av_dgid,
2047 mce->mc_jstate);
3064 ibd_iba_join(ibd_state_t *state, ib_gid_t mgid, ibd_mce_t *mce)
3071 mcg_attr.mc_join_state = mce->mc_jstate;
3077 return (ibt_join_mcg(state->id_sgid, &mcg_attr, &mce->mc_info,
3094 ibd_mce_t *mce, *tmce, *omce = NULL;
3102 * extra work. If there is already an mce on the list that
3106 * mark the mce not to be reaped when the Tx completion queues
3109 * If there is already an mce on the list indicating sendonly
3111 * not to deallocate the old mce, since there might be an AH
3112 * pointing to it; instead, update the old mce with new data
3129 mce = kmem_zalloc(sizeof (ibd_mce_t), KM_SLEEP);
3130 mce->mc_fullreap = B_FALSE;
3131 mce->mc_jstate = jstate;
3133 if ((ibt_status = ibd_iba_join(state, mgid, mce)) != IBT_SUCCESS) {
3136 kmem_free(mce, sizeof (ibd_mce_t));
3161 &mce->mc_info)) != IBT_SUCCESS) {
3171 kmem_free(mce, sizeof (ibd_mce_t));
3180 IBD_MCACHE_INSERT_NON(state, mce);
3187 * keep using the same mce.
3189 mce->mc_req.rq_gid = mgid;
3190 mce->mc_req.rq_ptr = mce;
3203 bcopy(&mce->mc_info, &omce->mc_info,
3205 kmem_free(mce, sizeof (ibd_mce_t));
3209 IBD_MCACHE_INSERT_FULL(state, mce);
3213 return (mce);
3223 ibd_reacquire_group(ibd_state_t *state, ibd_mce_t *mce)
3232 if (mce->mc_fullreap)
3235 mgid = mce->mc_info.mc_adds_vect.av_dgid;
3242 mce->mc_jstate);
3243 if (ibd_iba_join(state, mgid, mce) != IBT_SUCCESS)
3255 * it deletes the mce from the appropriate list and issues the IBA
3256 * leave/detach; except in the disable_multicast case when the mce
3260 ibd_async_reap_group(ibd_state_t *state, ibd_mce_t *mce, ib_gid_t mgid,
3277 if (!mce->mc_fullreap)
3280 IBD_MCACHE_PULLOUT_FULL(state, mce);
3285 IBD_MCACHE_PULLOUT_NON(state, mce);
3291 IBD_MCACHE_PULLOUT_FULL(state, mce);
3307 (void) ibt_detach_mcg(state->id_chnl_hdl, &mce->mc_info);
3311 kmem_free(mce, sizeof (ibd_mce_t));
3326 ibd_mce_t *mce;
3333 mce = IBD_MCACHE_FIND_NON(state, mgid);
3338 if (mce == NULL) {
3342 mce = IBD_MCACHE_FIND_FULL(state, mgid);
3346 * is not arriving late; if we have an mce that indicates
3352 if ((mce == NULL) || (mce->mc_jstate ==
3360 * If join group failed, mce will be NULL here.
3364 if (mce == NULL) {
3368 mce->mc_fullreap = B_TRUE;
3392 ibd_async_reap_group(state, mce, mgid, jstate);
5516 ibd_mce_t *mce;
5732 mce = list_head(&state->id_mc_full);
5733 while (mce != NULL) {
5734 mgid = mce->mc_info.mc_adds_vect.av_dgid;
5735 jstate = mce->mc_jstate;
5736 mce = list_next(&state->id_mc_full, mce);
6304 ibd_mce_t *mce = list_head(&state->id_mc_non);
6309 while (mce != NULL) {
6310 mgid = mce->mc_info.mc_adds_vect.av_dgid;
6311 mce = list_next(&state->id_mc_non, mce);
7764 ibd_mce_t *mce;
7777 * leave the group and destroy the mce. No
7788 mce = ace->ac_mce;
7798 if (mce != NULL) {
7802 * mc_req was initialized at mce
7806 &mce->mc_req, IBD_ASYNC_REAP);