agent: Better wr_id in send WR makes for slightly simpler completion handling (comment from Sean)
Index: agent.c =================================================================== --- agent.c (revision 1200) +++ agent.c (working copy) @@ -172,7 +172,7 @@ send_wr.wr.ud.remote_qkey = 0; /* for SMPs */ } send_wr.wr.ud.mad_hdr = &mad->mad.mad.mad_hdr; - send_wr.wr_id = (unsigned long)&agent_send_wr->send_list; + send_wr.wr_id = (unsigned long)agent_send_wr; pci_unmap_addr_set(agent_send_wr, mapping, gather_list.addr); @@ -236,7 +236,6 @@ { struct ib_agent_port_private *port_priv; struct ib_agent_send_wr *agent_send_wr; - struct list_head *send_wr; unsigned long flags; /* Find matching MAD agent */ @@ -247,10 +246,8 @@ return; } + agent_send_wr = (struct ib_agent_send_wr *)(unsigned long)mad_send_wc->wr_id; spin_lock_irqsave(&port_priv->send_list_lock, flags); - send_wr = (struct list_head *)(unsigned long)mad_send_wc->wr_id; - agent_send_wr = container_of(send_wr, struct ib_agent_send_wr, - send_list); /* Remove completed send from posted send MAD list */ list_del(&agent_send_wr->send_list); spin_unlock_irqrestore(&port_priv->send_list_lock, flags); _______________________________________________ openib-general mailing list [EMAIL PROTECTED] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general