Loading drivers/infiniband/core/agent.c +10 −14 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ ib_get_agent_port(struct ib_device *device, int port_num) return entry; } int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, void agent_send_response(struct ib_mad *mad, struct ib_grh *grh, struct ib_wc *wc, struct ib_device *device, int port_num, int qpn) { Loading @@ -86,7 +86,6 @@ int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, struct ib_mad_agent *agent; struct ib_mad_send_buf *send_buf; struct ib_ah *ah; int ret; struct ib_mad_send_wr_private *mad_send_wr; if (device->node_type == RDMA_NODE_IB_SWITCH) Loading @@ -96,23 +95,21 @@ int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, if (!port_priv) { printk(KERN_ERR SPFX "Unable to find port agent\n"); return -ENODEV; return; } agent = port_priv->agent[qpn]; ah = ib_create_ah_from_wc(agent->qp->pd, wc, grh, port_num); if (IS_ERR(ah)) { ret = PTR_ERR(ah); printk(KERN_ERR SPFX "ib_create_ah_from_wc error:%d\n", ret); return ret; printk(KERN_ERR SPFX "ib_create_ah_from_wc error\n"); return; } send_buf = ib_create_send_mad(agent, wc->src_qp, wc->pkey_index, 0, IB_MGMT_MAD_HDR, IB_MGMT_MAD_DATA, GFP_KERNEL); if (IS_ERR(send_buf)) { ret = PTR_ERR(send_buf); printk(KERN_ERR SPFX "ib_create_send_mad error:%d\n", ret); printk(KERN_ERR SPFX "ib_create_send_mad error\n"); goto err1; } Loading @@ -126,16 +123,15 @@ int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, mad_send_wr->send_wr.wr.ud.port_num = port_num; } if ((ret = ib_post_send_mad(send_buf, NULL))) { printk(KERN_ERR SPFX "ib_post_send_mad error:%d\n", ret); if (ib_post_send_mad(send_buf, NULL)) { printk(KERN_ERR SPFX "ib_post_send_mad error\n"); goto err2; } return 0; return; err2: ib_free_send_mad(send_buf); err1: ib_destroy_ah(ah); return ret; } static void agent_send_handler(struct ib_mad_agent *mad_agent, Loading drivers/infiniband/core/agent.h +3 −3 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ extern int ib_agent_port_open(struct ib_device *device, int port_num); extern int ib_agent_port_close(struct ib_device *device, int port_num); extern int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, extern void agent_send_response(struct ib_mad *mad, struct ib_grh *grh, struct ib_wc *wc, struct ib_device *device, int port_num, int qpn); Loading Loading
drivers/infiniband/core/agent.c +10 −14 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ ib_get_agent_port(struct ib_device *device, int port_num) return entry; } int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, void agent_send_response(struct ib_mad *mad, struct ib_grh *grh, struct ib_wc *wc, struct ib_device *device, int port_num, int qpn) { Loading @@ -86,7 +86,6 @@ int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, struct ib_mad_agent *agent; struct ib_mad_send_buf *send_buf; struct ib_ah *ah; int ret; struct ib_mad_send_wr_private *mad_send_wr; if (device->node_type == RDMA_NODE_IB_SWITCH) Loading @@ -96,23 +95,21 @@ int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, if (!port_priv) { printk(KERN_ERR SPFX "Unable to find port agent\n"); return -ENODEV; return; } agent = port_priv->agent[qpn]; ah = ib_create_ah_from_wc(agent->qp->pd, wc, grh, port_num); if (IS_ERR(ah)) { ret = PTR_ERR(ah); printk(KERN_ERR SPFX "ib_create_ah_from_wc error:%d\n", ret); return ret; printk(KERN_ERR SPFX "ib_create_ah_from_wc error\n"); return; } send_buf = ib_create_send_mad(agent, wc->src_qp, wc->pkey_index, 0, IB_MGMT_MAD_HDR, IB_MGMT_MAD_DATA, GFP_KERNEL); if (IS_ERR(send_buf)) { ret = PTR_ERR(send_buf); printk(KERN_ERR SPFX "ib_create_send_mad error:%d\n", ret); printk(KERN_ERR SPFX "ib_create_send_mad error\n"); goto err1; } Loading @@ -126,16 +123,15 @@ int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, mad_send_wr->send_wr.wr.ud.port_num = port_num; } if ((ret = ib_post_send_mad(send_buf, NULL))) { printk(KERN_ERR SPFX "ib_post_send_mad error:%d\n", ret); if (ib_post_send_mad(send_buf, NULL)) { printk(KERN_ERR SPFX "ib_post_send_mad error\n"); goto err2; } return 0; return; err2: ib_free_send_mad(send_buf); err1: ib_destroy_ah(ah); return ret; } static void agent_send_handler(struct ib_mad_agent *mad_agent, Loading
drivers/infiniband/core/agent.h +3 −3 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ extern int ib_agent_port_open(struct ib_device *device, int port_num); extern int ib_agent_port_close(struct ib_device *device, int port_num); extern int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, extern void agent_send_response(struct ib_mad *mad, struct ib_grh *grh, struct ib_wc *wc, struct ib_device *device, int port_num, int qpn); Loading