Lines Matching refs:mad_agent
527 void ib_unregister_mad_agent(struct ib_mad_agent *mad_agent) in ib_unregister_mad_agent() argument
531 mad_agent_priv = container_of(mad_agent, in ib_unregister_mad_agent()
838 struct ib_mad_send_buf *ib_create_send_mad(struct ib_mad_agent *mad_agent, in ib_create_send_mad() argument
851 mad_agent_priv = container_of(mad_agent, struct ib_mad_agent_private, in ib_create_send_mad()
854 opa = rdma_cap_opa_mad(mad_agent->device, mad_agent->port_num); in ib_create_send_mad()
864 if (ib_mad_kernel_rmpp_agent(mad_agent)) { in ib_create_send_mad()
885 mad_send_wr->sg_list[0].lkey = mad_agent->qp->pd->local_dma_lkey; in ib_create_send_mad()
894 mad_send_wr->sg_list[1].lkey = mad_agent->qp->pd->local_dma_lkey; in ib_create_send_mad()
915 mad_send_wr->send_buf.mad_agent = mad_agent; in ib_create_send_mad()
987 mad_agent_priv = container_of(send_buf->mad_agent, in ib_free_send_mad()
1002 struct ib_mad_agent *mad_agent; in ib_send_mad() local
1013 mad_agent = mad_send_wr->send_buf.mad_agent; in ib_send_mad()
1015 sge[0].addr = ib_dma_map_single(mad_agent->device, in ib_send_mad()
1019 if (unlikely(ib_dma_mapping_error(mad_agent->device, sge[0].addr))) in ib_send_mad()
1024 sge[1].addr = ib_dma_map_single(mad_agent->device, in ib_send_mad()
1028 if (unlikely(ib_dma_mapping_error(mad_agent->device, sge[1].addr))) { in ib_send_mad()
1029 ib_dma_unmap_single(mad_agent->device, in ib_send_mad()
1039 ret = ib_post_send(mad_agent->qp, &mad_send_wr->send_wr.wr, in ib_send_mad()
1053 ib_dma_unmap_single(mad_agent->device, in ib_send_mad()
1056 ib_dma_unmap_single(mad_agent->device, in ib_send_mad()
1088 if (!send_buf->mad_agent->send_handler || in ib_post_send_mad()
1090 !send_buf->mad_agent->recv_handler)) { in ib_post_send_mad()
1538 struct ib_mad_agent_private *mad_agent = NULL; in find_mad_agent() local
1550 mad_agent = xa_load(&ib_mad_clients, hi_tid); in find_mad_agent()
1551 if (mad_agent && !refcount_inc_not_zero(&mad_agent->refcount)) in find_mad_agent()
1552 mad_agent = NULL; in find_mad_agent()
1580 mad_agent = method->agent[mad_hdr->method & in find_mad_agent()
1598 mad_agent = method->agent[mad_hdr->method & in find_mad_agent()
1602 if (mad_agent) in find_mad_agent()
1603 refcount_inc(&mad_agent->refcount); in find_mad_agent()
1608 if (mad_agent && !mad_agent->agent.recv_handler) { in find_mad_agent()
1611 &mad_agent->agent, port_priv->port_num); in find_mad_agent()
1612 deref_mad_agent(mad_agent); in find_mad_agent()
1613 mad_agent = NULL; in find_mad_agent()
1616 return mad_agent; in find_mad_agent()
2030 struct ib_mad_agent_private *mad_agent; in ib_mad_recv_done() local
2128 mad_agent = find_mad_agent(port_priv, (const struct ib_mad_hdr *)recv->mad); in ib_mad_recv_done()
2129 if (mad_agent) { in ib_mad_recv_done()
2130 trace_ib_mad_recv_done_agent(mad_agent); in ib_mad_recv_done()
2131 ib_mad_complete_recv(mad_agent, &recv->header.recv_wc); in ib_mad_recv_done()
2300 ib_dma_unmap_single(mad_send_wr->send_buf.mad_agent->device, in ib_mad_send_done()
2303 ib_dma_unmap_single(mad_send_wr->send_buf.mad_agent->device, in ib_mad_send_done()
2472 mad_agent_priv = container_of(send_buf->mad_agent, in ib_modify_mad()