Lines Matching refs:mad_agent

651 void ib_unregister_mad_agent(struct ib_mad_agent *mad_agent)  in ib_unregister_mad_agent()  argument
657 if (mad_agent->hi_tid) { in ib_unregister_mad_agent()
658 mad_agent_priv = container_of(mad_agent, in ib_unregister_mad_agent()
663 mad_snoop_priv = container_of(mad_agent, in ib_unregister_mad_agent()
1019 struct ib_mad_send_buf * ib_create_send_mad(struct ib_mad_agent *mad_agent, in ib_create_send_mad() argument
1033 mad_agent_priv = container_of(mad_agent, struct ib_mad_agent_private, in ib_create_send_mad()
1036 opa = rdma_cap_opa_mad(mad_agent->device, mad_agent->port_num); in ib_create_send_mad()
1046 if (ib_mad_kernel_rmpp_agent(mad_agent)) { in ib_create_send_mad()
1067 mad_send_wr->sg_list[0].lkey = mad_agent->qp->pd->local_dma_lkey; in ib_create_send_mad()
1076 mad_send_wr->sg_list[1].lkey = mad_agent->qp->pd->local_dma_lkey; in ib_create_send_mad()
1097 mad_send_wr->send_buf.mad_agent = mad_agent; in ib_create_send_mad()
1169 mad_agent_priv = container_of(send_buf->mad_agent, in ib_free_send_mad()
1184 struct ib_mad_agent *mad_agent; in ib_send_mad() local
1195 mad_agent = mad_send_wr->send_buf.mad_agent; in ib_send_mad()
1197 sge[0].addr = ib_dma_map_single(mad_agent->device, in ib_send_mad()
1201 if (unlikely(ib_dma_mapping_error(mad_agent->device, sge[0].addr))) in ib_send_mad()
1206 sge[1].addr = ib_dma_map_single(mad_agent->device, in ib_send_mad()
1210 if (unlikely(ib_dma_mapping_error(mad_agent->device, sge[1].addr))) { in ib_send_mad()
1211 ib_dma_unmap_single(mad_agent->device, in ib_send_mad()
1220 ret = ib_post_send(mad_agent->qp, &mad_send_wr->send_wr.wr, in ib_send_mad()
1234 ib_dma_unmap_single(mad_agent->device, in ib_send_mad()
1237 ib_dma_unmap_single(mad_agent->device, in ib_send_mad()
1269 if (!send_buf->mad_agent->send_handler || in ib_post_send_mad()
1271 !send_buf->mad_agent->recv_handler)) { in ib_post_send_mad()
1379 int ib_process_mad_wc(struct ib_mad_agent *mad_agent, in ib_process_mad_wc() argument
1382 dev_err(&mad_agent->device->dev, in ib_process_mad_wc()
1741 struct ib_mad_agent_private *mad_agent = NULL; in find_mad_agent() local
1753 mad_agent = idr_find(&ib_mad_clients, hi_tid); in find_mad_agent()
1754 if (mad_agent && !atomic_inc_not_zero(&mad_agent->refcount)) in find_mad_agent()
1755 mad_agent = NULL; in find_mad_agent()
1783 mad_agent = method->agent[mad_hdr->method & in find_mad_agent()
1801 mad_agent = method->agent[mad_hdr->method & in find_mad_agent()
1805 if (mad_agent) in find_mad_agent()
1806 atomic_inc(&mad_agent->refcount); in find_mad_agent()
1811 if (mad_agent && !mad_agent->agent.recv_handler) { in find_mad_agent()
1814 &mad_agent->agent, port_priv->port_num); in find_mad_agent()
1815 deref_mad_agent(mad_agent); in find_mad_agent()
1816 mad_agent = NULL; in find_mad_agent()
1819 return mad_agent; in find_mad_agent()
2229 struct ib_mad_agent_private *mad_agent; in ib_mad_recv_done() local
2329 mad_agent = find_mad_agent(port_priv, (const struct ib_mad_hdr *)recv->mad); in ib_mad_recv_done()
2330 if (mad_agent) { in ib_mad_recv_done()
2331 ib_mad_complete_recv(mad_agent, &recv->header.recv_wc); in ib_mad_recv_done()
2496 ib_dma_unmap_single(mad_send_wr->send_buf.mad_agent->device, in ib_mad_send_done()
2499 ib_dma_unmap_single(mad_send_wr->send_buf.mad_agent->device, in ib_mad_send_done()
2659 int ib_modify_mad(struct ib_mad_agent *mad_agent, in ib_modify_mad() argument
2667 mad_agent_priv = container_of(mad_agent, struct ib_mad_agent_private, in ib_modify_mad()
2693 void ib_cancel_mad(struct ib_mad_agent *mad_agent, in ib_cancel_mad() argument
2696 ib_modify_mad(mad_agent, send_buf, 0); in ib_cancel_mad()