[openib-general] [PATCH] ib_mad: Eliminate ib_tid union

Hal Rosenstock
Wed Oct 6 10:45:17 PDT 2004


ib_mad: Eliminate ib_tid union

Index: access/ib_mad_priv.h
===================================================================
--- access/ib_mad_priv.h        (revision 942)
+++ 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 */
-       union ib_tid tid;
+       u64 tid;
        int timeout_ms;
        int refcount;
        enum ib_wc_status status;
Index: access/ib_mad.c
===================================================================
--- access/ib_mad.c     (revision 940)
+++ access/ib_mad.c     (working copy)
@@ -344,7 +344,7 @@
                        return -ENOMEM; 
                }
 
-               mad_send_wr->tid.id = send_wr->wr.ud.mad->mad_hdr.tid.id;
+               mad_send_wr->tid = send_wr->wr.ud.mad->mad_hdr.tid;
                mad_send_wr->agent = mad_agent;
                mad_send_wr->timeout_ms = cur_send_wr->wr.ud.timeout_ms;
                if (mad_send_wr->timeout_ms)
@@ -682,7 +682,7 @@
        /* Whether MAD was solicited determines type of routing to MAD client
*/
        if (solicited) {
                /* Routing is based on high 32 bits of transaction ID of MAD  */
-               hi_tid = be32_to_cpu(mad->mad_hdr.tid.tid_field.hi_tid);
+               hi_tid = be64_to_cpu(mad->mad_hdr.tid) >> 32;
                list_for_each_entry(entry, &port_priv->agent_list, agent_list) {
                        if (entry->agent.hi_tid == hi_tid) {
                                mad_agent = entry;
@@ -764,7 +764,7 @@
        list_for_each_entry(mad_send_wr, &mad_agent_priv->send_list,
                            agent_send_list) {
 
-               if (mad_send_wr->tid.id == tid) {
+               if (mad_send_wr->tid == tid) {
                        /* Verify request is still valid */
                        if (mad_send_wr->status == IB_WC_SUCCESS &&
                            mad_send_wr->timeout_ms)
@@ -793,7 +793,7 @@
        if (solicited) {
                spin_lock_irqsave(&mad_agent_priv->send_list_lock, flags);
                mad_send_wr = find_send_req(mad_agent_priv,
-                                           recv->mad.mad.mad_hdr.tid.id);
+                                           recv->mad.mad.mad_hdr.tid);
                if (!mad_send_wr) {
                        spin_unlock_irqrestore(&mad_agent_priv->send_list_lock,
                                               flags);
Index: include/ib_mad.h
===================================================================
--- include/ib_mad.h    (revision 943)
+++ include/ib_mad.h    (working copy)
@@ -69,14 +69,6 @@
        union ib_gid    dgid;
 } __attribute__ ((packed));
 
-union ib_tid {
-       u64     id;
-       struct {
-               u32     hi_tid;
-               u32     lo_tid;
-       } tid_field;
-};
-
 struct ib_mad_hdr {
        u8      base_version;
        u8      mgmt_class;
@@ -84,7 +76,7 @@
        u8      method;
        u16     status;
        u16     class_specific;
-       union ib_tid tid;
+       u64     tid;
        u16     attr_id;
        u16     resv;
        u32     attr_mod;
Index: include/ib_smi.h
===================================================================
--- include/ib_smi.h    (revision 935)
+++ include/ib_smi.h    (working copy)
@@ -41,7 +41,7 @@
        u16     status;
        u8      hop_ptr;
        u8      hop_cnt;
-       union ib_tid tid;
+       u64     tid;
        u16     attr_id;
        u16     resv;
        u32     attr_mod;





More information about the openib-general mailing list