Lines Matching defs:ud_statep

329  *    increment ud_statep->ud_ref_cnt
341 * decr ud_statep->ud_ref_cnt, release ud_state_mutex
345 * if (ud_statep->ud_state is SIDR_REP_SENT)
348 * decr ud_statep->ud_ref_cnt, release ud_state_mutex
355 * increment ud_statep->ud_ref_cnt
427 ibcm_ud_state_data_t *ud_statep);
4044 ibcm_ud_state_data_t *ud_statep = (ibcm_ud_state_data_t *)args;
4046 IBTF_DPRINTF_L4(cmlog, "ibcm_post_sidr_rep_complete ud_statep %p",
4047 ud_statep);
4050 mutex_enter(&ud_statep->ud_state_mutex);
4051 ud_statep->ud_send_mad_flags &= ~IBCM_SREP_POST_BUSY;
4052 ud_statep->ud_remaining_retry_cnt = 0;
4053 if (ud_statep->ud_state == IBCM_STATE_SIDR_REP_SENT)
4054 ud_statep->ud_timerid = IBCM_UD_TIMEOUT(ud_statep,
4055 ud_statep->ud_timer_value);
4056 IBCM_UD_REF_CNT_DECR(ud_statep);
4057 mutex_exit(&ud_statep->ud_state_mutex);
4066 ibcm_ud_state_data_t *ud_statep = (ibcm_ud_state_data_t *)args;
4068 IBTF_DPRINTF_L4(cmlog, "ibcm_post_sidr_req_complete ud_statep %p",
4069 ud_statep);
4072 mutex_enter(&ud_statep->ud_state_mutex);
4073 if (ud_statep->ud_state == IBCM_STATE_SIDR_REQ_SENT)
4074 ud_statep->ud_timerid = IBCM_UD_TIMEOUT(ud_statep,
4075 ud_statep->ud_timer_value);
4076 IBCM_UD_REF_CNT_DECR(ud_statep);
4077 mutex_exit(&ud_statep->ud_state_mutex);
4173 ibcm_add_ud_tlist(ibcm_ud_state_data_t *ud_statep)
4177 ud_statep->ud_timeout_next = NULL;
4179 ibcm_ud_timeout_list_hdr = ud_statep;
4181 ibcm_ud_timeout_list_tail->ud_timeout_next = ud_statep;
4184 ibcm_ud_timeout_list_tail = ud_statep;
4190 "attached state = %p to ud timeout list", ud_statep);
4207 ibcm_ud_state_data_t *ud_statep;
4244 ud_statep = ibcm_ud_timeout_list_hdr;
4245 ibcm_ud_timeout_list_hdr = ud_statep->ud_timeout_next;
4250 ud_statep->ud_timeout_next = NULL;
4254 "ud scheduling state = %p", ud_statep);
4255 ibcm_ud_timeout_client_cb(ud_statep);
4430 ibcm_ud_timeout_client_cb(ibcm_ud_state_data_t *ud_statep)
4434 mutex_enter(&ud_statep->ud_state_mutex);
4436 if ((ud_statep->ud_state == IBCM_STATE_DELETE) &&
4437 (ud_statep->ud_delete_state_data == B_TRUE)) {
4439 mutex_exit(&ud_statep->ud_state_mutex);
4440 ibcm_dealloc_ud_state_data(ud_statep);
4443 mutex_exit(&ud_statep->ud_state_mutex);
4450 (void) ud_statep->ud_cm_handler(ud_statep->ud_state_cm_private,
4454 ibcm_delete_ud_state_data(ud_statep);
4485 ibcm_ud_state_data_t *ud_statep = NULL;
4523 state_lookup_status = ibcm_find_sidr_entry(&srch_sidr, hcap, &ud_statep,
4527 IBTF_DPRINTF_L4(cmlog, "ibcm_process_sidr_req_msg: ud_statep 0x%p "
4528 "lookup status %x", ud_statep, state_lookup_status);
4535 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*ud_statep))
4544 &ud_statep->ud_stored_msg, MAD_METHOD_SEND) !=
4546 mutex_enter(&ud_statep->ud_state_mutex);
4547 IBCM_UD_REF_CNT_DECR(ud_statep);
4548 mutex_exit(&ud_statep->ud_state_mutex);
4549 ibcm_delete_ud_state_data(ud_statep);
4554 ud_statep->ud_svc_id = b2h64(sidr_reqp->sidr_req_service_id);
4555 ud_statep->ud_state = IBCM_STATE_SIDR_REQ_RCVD;
4556 ud_statep->ud_clnt_proceed = IBCM_BLOCK;
4560 svc_infop = ibcm_find_svc_entry(ud_statep->ud_svc_id);
4563 " ud_statep 0x%p svc_info %p", ud_statep, svc_infop);
4600 IBCM_OUT_HDRP(ud_statep->ud_stored_msg)->TransactionID =
4604 &ud_statep->ud_stored_reply_addr);
4606 if (ud_statep->ud_stored_reply_addr.cm_qp_entry == NULL) {
4611 mutex_enter(&ud_statep->ud_state_mutex);
4612 IBCM_UD_REF_CNT_DECR(ud_statep);
4613 ud_statep->ud_state = IBCM_STATE_DELETE;
4614 mutex_exit(&ud_statep->ud_state_mutex);
4616 ibcm_delete_ud_state_data(ud_statep);
4628 ud_statep->ud_cm_handler = svc_infop->svc_ud_handler;
4629 ud_statep->ud_state_cm_private =
4635 cm_status = ibcm_sidr_req_ud_handler(ud_statep,
4646 "ud_statep 0x%p client returned DEFER response",
4647 ud_statep);
4651 ibcm_post_sidr_rep_mad(ud_statep, sidr_status);
4653 _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*ud_statep))
4655 mutex_enter(&ud_statep->ud_state_mutex);
4656 IBCM_UD_REF_CNT_DECR(ud_statep);
4657 mutex_exit(&ud_statep->ud_state_mutex);
4661 mutex_enter(&ud_statep->ud_state_mutex);
4663 if (ud_statep->ud_state == IBCM_STATE_SIDR_REP_SENT)
4664 ibcm_resend_srep_mad(ud_statep);
4666 IBCM_UD_REF_CNT_DECR(ud_statep);
4667 mutex_exit(&ud_statep->ud_state_mutex);
4694 ibcm_ud_state_data_t *ud_statep = NULL;
4728 status = ibcm_find_sidr_entry(&srch_sidr, hcap, &ud_statep,
4732 IBTF_DPRINTF_L4(cmlog, "ibcm_process_sidr_rep_msg: ud_statep 0x%p "
4733 "find sidr entry status = %x", ud_statep, status);
4737 "No matching ud_statep for SIDR REP");
4741 if (IBCM_OUT_HDRP(ud_statep->ud_stored_msg)->TransactionID !=
4743 mutex_enter(&ud_statep->ud_state_mutex);
4744 IBCM_UD_REF_CNT_DECR(ud_statep);
4745 mutex_exit(&ud_statep->ud_state_mutex);
4747 "ud_statep 0x%p. A SIDR REP MAD with tid expected 0x%llX "
4748 "tid found 0x%llX req_id %x arrived", ud_statep,
4750 IBCM_OUT_HDRP(ud_statep->ud_stored_msg)->TransactionID),
4756 mutex_enter(&ud_statep->ud_state_mutex);
4764 if (ud_statep->ud_svc_id != b2h64(tmp_svc_id)) {
4766 "ud_statep -0x%p svcids do not match %llx %llx",
4767 ud_statep, ud_statep->ud_svc_id, b2h64(tmp_svc_id));
4769 IBCM_UD_REF_CNT_DECR(ud_statep);
4770 mutex_exit(&ud_statep->ud_state_mutex);
4774 if (ud_statep->ud_state == IBCM_STATE_SIDR_REQ_SENT) {
4775 timeout_id_t timer_val = ud_statep->ud_timerid;
4777 ud_statep->ud_state = IBCM_STATE_SIDR_REP_RCVD;
4778 ud_statep->ud_timerid = 0;
4779 mutex_exit(&ud_statep->ud_state_mutex);
4787 ibcm_sidr_rep_ud_handler(ud_statep, sidr_repp);
4789 mutex_enter(&ud_statep->ud_state_mutex);
4791 ud_statep->ud_state = IBCM_STATE_DELETE;
4794 * ud_statep->ud_return_data is initialized for blocking in
4798 if (ud_statep->ud_return_data != NULL) {
4803 len = min(ud_statep->ud_return_data->ud_priv_data_len,
4806 if ((ud_statep->ud_return_data->ud_priv_data != NULL) &&
4809 ud_statep->ud_return_data->ud_priv_data,
4814 ud_statep->ud_return_data->ud_status =
4817 if (ud_statep->ud_return_data->ud_status ==
4819 ud_statep->ud_return_data->ud_dqpn =
4821 ud_statep->ud_return_data->ud_qkey =
4825 ud_statep->ud_blocking_done = B_TRUE;
4826 cv_broadcast(&ud_statep->ud_block_client_cv);
4829 IBCM_UD_REF_CNT_DECR(ud_statep);
4830 mutex_exit(&ud_statep->ud_state_mutex);
4833 ibcm_delete_ud_state_data(ud_statep);
4836 "ud state is = 0x%x", ud_statep->ud_state);
4837 IBCM_UD_REF_CNT_DECR(ud_statep);
4838 mutex_exit(&ud_statep->ud_state_mutex);
4848 * ud_statep - pointer to ibcm_ud_state_data_t
4854 ibcm_post_sidr_rep_mad(ibcm_ud_state_data_t *ud_statep,
4859 (ibcm_sidr_rep_msg_t *)IBCM_OUT_MSGP(ud_statep->ud_stored_msg);
4866 IBCM_OUT_HDRP(ud_statep->ud_stored_msg)->AttributeID =
4873 sidr_repp->sidr_rep_request_id = h2b32(ud_statep->ud_req_id);
4874 tmp_svc_id = h2b64(ud_statep->ud_svc_id);
4882 ibcm_post_ud_mad(ud_statep, ud_statep->ud_stored_msg, NULL, NULL);
4890 mutex_enter(&ud_statep->ud_state_mutex);
4892 ud_statep->ud_remaining_retry_cnt = 1;
4893 ud_statep->ud_timer_value = timer_value;
4895 ud_statep->ud_timer_stored_state = ud_statep->ud_state =
4897 ud_statep->ud_timerid = IBCM_UD_TIMEOUT(ud_statep,
4898 ud_statep->ud_timer_value);
4900 mutex_exit(&ud_statep->ud_state_mutex);
4916 ibcm_ud_state_data_t *ud_statep = (ibcm_ud_state_data_t *)arg;
4918 mutex_enter(&ud_statep->ud_state_mutex);
4919 ud_statep->ud_timerid = 0;
4921 IBTF_DPRINTF_L3(cmlog, "ibcm_sidr_timeout_cb: ud_statep 0x%p "
4922 "state = 0x%x", ud_statep, ud_statep->ud_state);
4925 if (ud_statep->ud_state == IBCM_STATE_SIDR_REP_SENT) {
4926 ud_statep->ud_state = IBCM_STATE_DELETE;
4928 mutex_exit(&ud_statep->ud_state_mutex);
4931 ibcm_delete_ud_state_data(ud_statep);
4933 } else if ((ud_statep->ud_remaining_retry_cnt > 0) &&
4934 (ud_statep->ud_state == IBCM_STATE_SIDR_REQ_SENT)) {
4936 ud_statep->ud_remaining_retry_cnt--;
4937 IBCM_UD_REF_CNT_INCR(ud_statep); /* for non-blocking post */
4939 "ud_statep = %p, retries remaining = 0x%x",
4940 ud_statep, ud_statep->ud_remaining_retry_cnt);
4941 mutex_exit(&ud_statep->ud_state_mutex);
4944 ibcm_post_ud_mad(ud_statep, ud_statep->ud_stored_msg,
4945 ibcm_post_sidr_req_complete, ud_statep);
4947 } else if (ud_statep->ud_state == IBCM_STATE_SIDR_REQ_SENT) {
4952 ud_statep->ud_state = IBCM_STATE_DELETE;
4961 if (ud_statep->ud_return_data != NULL) {
4962 ud_statep->ud_return_data->ud_status =
4964 ud_statep->ud_blocking_done = B_TRUE;
4965 cv_broadcast(&ud_statep->ud_block_client_cv);
4968 mutex_exit(&ud_statep->ud_state_mutex);
4971 if (ud_statep->ud_cm_handler != NULL) {
4973 ibcm_add_ud_tlist(ud_statep);
4978 ibcm_delete_ud_state_data(ud_statep);
4984 "Nop timeout for ud_statep 0x%p in ud_state %d",
4985 ud_statep, ud_statep->ud_state);
4987 mutex_exit(&ud_statep->ud_state_mutex);
5000 * ud_statep - ibcm_ud_state_data_t
5005 ibcm_resend_srep_mad(ibcm_ud_state_data_t *ud_statep)
5009 ASSERT(MUTEX_HELD(&ud_statep->ud_state_mutex));
5011 IBTF_DPRINTF_L3(cmlog, "ibcm_resend_srep_mad: ud_statep 0x%p",
5012 ud_statep);
5014 if (ud_statep->ud_send_mad_flags & IBCM_SREP_POST_BUSY)
5017 ud_statep->ud_send_mad_flags |= IBCM_SREP_POST_BUSY;
5020 IBCM_UD_REF_CNT_INCR(ud_statep);
5023 timer_val = ud_statep->ud_timerid;
5025 if (ud_statep->ud_timerid != 0) {
5026 ud_statep->ud_timerid = 0;
5027 mutex_exit(&ud_statep->ud_state_mutex);
5030 mutex_exit(&ud_statep->ud_state_mutex);
5034 ibcm_post_ud_mad(ud_statep, ud_statep->ud_stored_msg,
5035 ibcm_post_sidr_rep_complete, ud_statep);
5037 mutex_enter(&ud_statep->ud_state_mutex);
5121 * ud_statep : UD statep associated with the post
5129 ibcm_post_ud_mad(ibcm_ud_state_data_t *ud_statep, ibmf_msg_t *msgp,
5133 status = ibcm_post_mad(msgp, &ud_statep->ud_stored_reply_addr,
7579 * ud_statep - ud_state pointer
7585 ibcm_sidr_req_ud_handler(ibcm_ud_state_data_t *ud_statep,
7599 ASSERT(ud_statep->ud_cm_handler != NULL);
7603 ud_event.cm_session_id = ud_statep;
7604 ud_event.cm_event.sidr_req.sreq_service_id = ud_statep->ud_svc_id;
7605 ud_event.cm_event.sidr_req.sreq_hca_guid = ud_statep->ud_hcap->hca_guid;
7614 (ibcm_sidr_rep_msg_t *)IBCM_OUT_MSGP(ud_statep->ud_stored_msg);
7621 cb_status = ud_statep->ud_cm_handler(ud_statep->ud_state_cm_private,
7627 mutex_enter(&ud_statep->ud_state_mutex);
7628 ud_statep->ud_clnt_proceed = IBCM_UNBLOCK;
7629 cv_broadcast(&ud_statep->ud_block_client_cv);
7630 mutex_exit(&ud_statep->ud_state_mutex);
7636 mutex_enter(&ud_statep->ud_state_mutex);
7637 ud_statep->ud_clnt_proceed = IBCM_FAIL;
7638 cv_broadcast(&ud_statep->ud_block_client_cv);
7639 mutex_exit(&ud_statep->ud_state_mutex);
7667 ibcm_process_sidr_req_cm_hdlr(ud_statep, cb_status, &ud_clnt_info,
7675 ibcm_process_sidr_req_cm_hdlr(ibcm_ud_state_data_t *ud_statep,
7682 "%p, %p, %p)", ud_statep, cb_status, ud_clnt_info,
7744 * ud_statep - ud_state pointer
7749 ibcm_sidr_rep_ud_handler(ibcm_ud_state_data_t *ud_statep,
7754 IBTF_DPRINTF_L5(cmlog, "ibcm_sidr_rep_ud_handler: ud_statep 0x%p",
7755 ud_statep);
7758 if (ud_statep->ud_cm_handler == NULL) {
7784 if (ud_statep->ud_return_data != NULL)
7786 &ud_statep->ud_return_data->ud_redirect,
7794 (void) ud_statep->ud_cm_handler(ud_statep->ud_state_cm_private,