|
@@ -78,15 +78,14 @@ 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,
|
|
|
- struct ib_wc *wc, struct ib_device *device,
|
|
|
- int port_num, int qpn)
|
|
|
+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)
|
|
|
{
|
|
|
struct ib_agent_port_private *port_priv;
|
|
|
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)
|
|
@@ -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;
|
|
|
}
|
|
|
|
|
@@ -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,
|