[openib-general] [PATCH] ib_mad: Add MAD pointer to send WR ud structure

Hal Rosenstock halr at voltaire.com
Wed Oct 6 06:50:00 PDT 2004


ib_mad: Add MAD pointer to send WR ud structure (in ib_verbs.h)

Index: access/ib_mad_priv.h
===================================================================
--- access/ib_mad_priv.h	(revision 935)
+++ access/ib_mad_priv.h	(working copy)
@@ -119,7 +119,7 @@
 	struct list_head agent_send_list;
 	struct ib_mad_agent *agent;
 	u64 wr_id;			/* client WR ID */
-	u64 tid;
+	union ib_tid tid;
 	int timeout_ms;
 	int refcount;
 	enum ib_wc_status status;
Index: access/ib_smi.c
===================================================================
--- access/ib_smi.c	(revision 937)
+++ access/ib_smi.c	(working copy)
@@ -361,8 +361,9 @@
                                                                                 
 	send_wr.wr.ud.ah = ah;
 	send_wr.wr.ud.remote_qkey = 0; /* for SMPs */
+	send_wr.wr.ud.mad = smp;
 	send_wr.wr_id = ++port_priv->wr_id;
-       
+
 	pci_unmap_addr_set(smp, mapping, gather_list.addr);
 
 	/* Send */
Index: access/ib_mad.c
===================================================================
--- access/ib_mad.c	(revision 939)
+++ access/ib_mad.c	(working copy)
@@ -344,8 +344,7 @@
 			return -ENOMEM;	
 		}
 
-		mad_send_wr->tid = ((struct ib_mad_hdr*)
-				   bus_to_virt(cur_send_wr->sg_list->addr))->tid.id;
+		mad_send_wr->tid.id = send_wr->wr.ud.mad->mad_hdr.tid.id;
 		mad_send_wr->agent = mad_agent;
 		mad_send_wr->timeout_ms = cur_send_wr->wr.ud.timeout_ms;
 		if (mad_send_wr->timeout_ms)
@@ -765,7 +764,7 @@
 	list_for_each_entry(mad_send_wr, &mad_agent_priv->send_list,
 			    agent_send_list) {
 
-		if (mad_send_wr->tid == tid) {
+		if (mad_send_wr->tid.id == tid) {
 			/* Verify request is still valid */
 			if (mad_send_wr->status == IB_WC_SUCCESS &&
 			    mad_send_wr->timeout_ms)
Index: include/ib_verbs.h
===================================================================
--- include/ib_verbs.h	(revision 935)
+++ include/ib_verbs.h	(working copy)
@@ -539,6 +539,7 @@
 		} atomic;
 		struct {
 			struct  ib_ah *ah;
+			struct	ib_mad *mad;
 			u32	remote_qpn;
 			u32	remote_qkey;
 			int	timeout_ms; /* valid for MADs only */






More information about the general mailing list