agent: Change calling argument to agent_mad_send
Rather than taking a struct ib_mad_recv_wc *, take a struct ib_wc *

Index: agent.c
===================================================================
--- agent.c     (revision 1131)
+++ agent.c     (working copy)
@@ -296,7 +296,7 @@
 static int agent_mad_send(struct ib_mad_agent *mad_agent,
                          struct ib_mad *mad,
                          struct ib_grh *grh,
-                         struct ib_mad_recv_wc *mad_recv_wc)
+                         struct ib_wc *wc)
 {
        struct ib_agent_port_private *port_priv;
        struct ib_agent_send_wr *agent_send_wr;
@@ -332,17 +332,17 @@
        send_wr.opcode = IB_WR_SEND;
        send_wr.sg_list = &gather_list;
        send_wr.num_sge = 1;
-       send_wr.wr.ud.remote_qpn = mad_recv_wc->wc->src_qp; /* DQPN */
+       send_wr.wr.ud.remote_qpn = wc->src_qp; /* DQPN */
        send_wr.wr.ud.timeout_ms = 0;
        send_wr.send_flags = IB_SEND_SIGNALED | IB_SEND_SOLICITED;
 
-       ah_attr.dlid = mad_recv_wc->wc->slid;
+       ah_attr.dlid = wc->slid;
        ah_attr.port_num = mad_agent->port_num;
-       ah_attr.src_path_bits = mad_recv_wc->wc->dlid_path_bits;
-       ah_attr.sl = mad_recv_wc->wc->sl;
+       ah_attr.src_path_bits = wc->dlid_path_bits;
+       ah_attr.sl = wc->sl;
        ah_attr.static_rate = 0;
        if (mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT) {
-               if (mad_recv_wc->wc->wc_flags & IB_WC_GRH) {
+               if (wc->wc_flags & IB_WC_GRH) {
                        ah_attr.ah_flags = IB_AH_GRH;
                        ah_attr.grh.sgid_index = 0; /* Should sgid be looked up
 ? */
@@ -351,7 +351,7 @@
                        ah_attr.grh.traffic_class = 
(be32_to_cpup(&grh->version_tclass_flow)
>> 20) & 0xff;
                        memcpy(ah_attr.grh.dgid.raw, grh->sgid.raw, sizeof(struct 
ib_grh));
                } else {
-                       ah_attr.ah_flags = 0; /* No GRH */
+                       ah_attr.ah_flags = 0; /* No GRH for SM class */
                }
        } else {
                /* Directed route or LID routed SM class */
@@ -367,7 +367,7 @@
 
        send_wr.wr.ud.ah = agent_send_wr->ah;
        if (mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT) {
-               send_wr.wr.ud.pkey_index = mad_recv_wc->wc->pkey_index;
+               send_wr.wr.ud.pkey_index = wc->pkey_index;
                send_wr.wr.ud.remote_qkey = IB_QP1_QKEY;
        } else {
                send_wr.wr.ud.pkey_index = 0; /* Should only matter for GMPs */
@@ -407,7 +407,6 @@
 {
        struct ib_agent_port_private *port_priv;
        struct ib_mad_agent *mad_agent;
-       struct ib_mad_recv_wc mad_recv_wc;
 
        port_priv = ib_get_agent_mad(device, port_num, NULL);
        if (!port_priv) {
@@ -431,9 +430,7 @@
                        return 1;
        }
 
-       /* Other fields don't matter so should change signature to just use wc
*/
-       mad_recv_wc.wc = wc;
-       return agent_mad_send(mad_agent, mad, grh, &mad_recv_wc);
+       return agent_mad_send(mad_agent, mad, grh, wc);
 }
 
 static void agent_send_handler(struct ib_mad_agent *mad_agent,



_______________________________________________
openib-general mailing list
[EMAIL PROTECTED]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to