[PATCH] IB: Change saving of user's send wr_id in MAD
authorHal Rosenstock <halr@voltaire.com>
Wed, 27 Jul 2005 18:45:24 +0000 (11:45 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 27 Jul 2005 23:26:10 +0000 (16:26 -0700)
Move saving of user's send wr_id to better match layering of received response
handling.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Hal Rosenstock <halr@voltaire.com>
Cc: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/infiniband/core/mad.c

index ebe8c3a..5535a45 100644 (file)
@@ -847,9 +847,8 @@ static int ib_send_mad(struct ib_mad_agent_private *mad_agent_priv,
        unsigned long flags;
        int ret;
 
-       /* Replace user's WR ID with our own to find WR upon completion */
+       /* Set WR ID to find mad_send_wr upon completion */
        qp_info = mad_agent_priv->qp_info;
-       mad_send_wr->wr_id = mad_send_wr->send_wr.wr_id;
        mad_send_wr->send_wr.wr_id = (unsigned long)&mad_send_wr->mad_list;
        mad_send_wr->mad_list.mad_queue = &qp_info->send_queue;
 
@@ -948,6 +947,7 @@ int ib_post_send_mad(struct ib_mad_agent *mad_agent,
                mad_send_wr->send_wr.sg_list = mad_send_wr->sg_list;
                memcpy(mad_send_wr->sg_list, send_wr->sg_list,
                       sizeof *send_wr->sg_list * send_wr->num_sge);
+               mad_send_wr->wr_id = mad_send_wr->send_wr.wr_id;
                mad_send_wr->send_wr.next = NULL;
                mad_send_wr->tid = send_wr->wr.ud.mad_hdr->tid;
                mad_send_wr->agent = mad_agent;