Lines Matching refs:send_buf

597 	struct ib_smp *smp = mad_send_wr->send_buf.mad;
694 mad_wc.byte_len = mad_send_wr->send_buf.hdr_len
695 + mad_send_wr->send_buf.data_len
791 struct ib_mad_send_buf *send_buf = &send_wr->send_buf;
792 struct ib_rmpp_mad *rmpp_mad = send_buf->mad;
796 send_buf->seg_size = mad_size - send_buf->hdr_len;
797 send_buf->seg_rmpp_size = mad_size - IB_MGMT_RMPP_HDR;
798 seg_size = send_buf->seg_size;
802 for (left = send_buf->data_len + pad; left > 0; left -= seg_size) {
808 seg->num = ++send_buf->seg_count;
873 mad_send_wr->send_buf.mad = buf;
874 mad_send_wr->send_buf.hdr_len = hdr_len;
875 mad_send_wr->send_buf.data_len = data_len;
910 mad_send_wr->send_buf.mad_agent = mad_agent;
912 return &mad_send_wr->send_buf;
945 void *ib_get_rmpp_segment(struct ib_mad_send_buf *send_buf, int seg_num)
950 mad_send_wr = container_of(send_buf, struct ib_mad_send_wr_private,
951 send_buf);
969 if (mad_send_wr->send_buf.seg_count)
970 return ib_get_rmpp_segment(&mad_send_wr->send_buf,
973 return mad_send_wr->send_buf.mad +
974 mad_send_wr->send_buf.hdr_len;
977 void ib_free_send_mad(struct ib_mad_send_buf *send_buf)
982 mad_agent_priv = container_of(send_buf->mad_agent,
984 mad_send_wr = container_of(send_buf, struct ib_mad_send_wr_private,
985 send_buf);
988 kfree(send_buf->mad);
1008 mad_agent = mad_send_wr->send_buf.mad_agent;
1011 mad_send_wr->send_buf.mad,
1062 int ib_post_send_mad(struct ib_mad_send_buf *send_buf,
1072 for (; send_buf; send_buf = next_send_buf) {
1073 mad_send_wr = container_of(send_buf,
1075 send_buf);
1083 if (!send_buf->mad_agent->send_handler ||
1084 (send_buf->timeout_ms &&
1085 !send_buf->mad_agent->recv_handler)) {
1090 if (!ib_is_mad_class_rmpp(((struct ib_mad_hdr *) send_buf->mad)->mgmt_class)) {
1102 next_send_buf = send_buf->next;
1103 mad_send_wr->send_wr.ah = send_buf->ah;
1105 if (((struct ib_mad_hdr *) send_buf->mad)->mgmt_class ==
1115 mad_send_wr->tid = ((struct ib_mad_hdr *) send_buf->mad)->tid;
1117 mad_send_wr->timeout = msecs_to_jiffies(send_buf->timeout_ms);
1118 mad_send_wr->max_retries = send_buf->retries;
1119 mad_send_wr->retries_left = send_buf->retries;
1120 send_buf->retries = 0;
1150 *bad_send_buf = send_buf;
1665 return ((struct ib_mad_hdr *)(wr->send_buf.mad))->mgmt_class ==
1682 send_resp = ib_response_mad((struct ib_mad_hdr *)wr->send_buf.mad);
1689 if (rdma_query_ah(wr->send_buf.ah, &attr))
1757 if (is_rmpp_data_mad(mad_agent_priv, wr->send_buf.mad) &&
1840 &mad_send_wr->send_buf,
1846 mad_send_wc.send_buf = &mad_send_wr->send_buf;
2295 ib_dma_unmap_single(mad_send_wr->send_buf.mad_agent->device,
2298 ib_dma_unmap_single(mad_send_wr->send_buf.mad_agent->device,
2316 mad_send_wc.send_buf = &mad_send_wr->send_buf;
2427 mad_send_wc.send_buf = &mad_send_wr->send_buf;
2437 struct ib_mad_send_buf *send_buf)
2443 if (&mad_send_wr->send_buf == send_buf)
2450 mad_send_wr->send_buf.mad) &&
2451 &mad_send_wr->send_buf == send_buf)
2457 int ib_modify_mad(struct ib_mad_send_buf *send_buf, u32 timeout_ms)
2464 if (!send_buf)
2467 mad_agent_priv = container_of(send_buf->mad_agent,
2470 mad_send_wr = find_send_wr(mad_agent_priv, send_buf);
2482 mad_send_wr->send_buf.timeout_ms = timeout_ms;
2557 &local->mad_send_wr->send_buf,
2568 mad_send_wc.send_buf = &local->mad_send_wr->send_buf;
2589 mad_send_wr->send_buf.retries++;
2591 mad_send_wr->timeout = msecs_to_jiffies(mad_send_wr->send_buf.timeout_ms);
2655 mad_send_wc.send_buf = &mad_send_wr->send_buf;