iw_cxgb4: clean up send_connect()
authorGanesh Goudar <ganeshgr@chelsio.com>
Tue, 31 Jan 2017 06:30:09 +0000 (12:00 +0530)
committerDoug Ledford <dledford@redhat.com>
Sun, 19 Feb 2017 14:18:30 +0000 (09:18 -0500)
Clean up send_connect() and make use of t6 specific
active open request struct.

Acked-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Bharat Teja <bharat@chelsio.com>
Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/cxgb4/cm.c

index a33f37998e63d643f1f773e6238f889ea52a08f5..03a1b0e64fc3e8d44616a21cb13cf219be926a55 100644 (file)
@@ -692,6 +692,10 @@ static int send_connect(struct c4iw_ep *ep)
        int ret;
        enum chip_type adapter_type = ep->com.dev->rdev.lldi.adapter_type;
        u32 isn = (prandom_u32() & ~7UL) - 1;
+       struct net_device *netdev;
+       u64 params;
+
+       netdev = ep->com.dev->rdev.lldi.ports[0];
 
        switch (CHELSIO_CHIP_VERSION(adapter_type)) {
        case CHELSIO_T4:
@@ -768,6 +772,8 @@ static int send_connect(struct c4iw_ep *ep)
                opt2 |= T5_ISS_F;
        }
 
+       params = cxgb4_select_ntuple(netdev, ep->l2t);
+
        if (ep->com.remote_addr.ss_family == AF_INET6)
                cxgb4_clip_get(ep->com.dev->rdev.lldi.ports[0],
                               (const u32 *)&la6->sin6_addr.s6_addr, 1);
@@ -809,18 +815,22 @@ static int send_connect(struct c4iw_ep *ep)
                req->opt0 = cpu_to_be64(opt0);
 
                if (is_t4(ep->com.dev->rdev.lldi.adapter_type)) {
-                       req->params = cpu_to_be32(cxgb4_select_ntuple(
-                                               ep->com.dev->rdev.lldi.ports[0],
-                                               ep->l2t));
+                       req->params = cpu_to_be32(params);
                        req->opt2 = cpu_to_be32(opt2);
                } else {
-                       t5req->params = cpu_to_be64(FILTER_TUPLE_V(
-                                               cxgb4_select_ntuple(
-                                               ep->com.dev->rdev.lldi.ports[0],
-                                               ep->l2t)));
-                       t5req->rsvd = cpu_to_be32(isn);
-                       PDBG("%s snd_isn %u\n", __func__, t5req->rsvd);
-                       t5req->opt2 = cpu_to_be32(opt2);
+                       if (is_t5(ep->com.dev->rdev.lldi.adapter_type)) {
+                               t5req->params =
+                                         cpu_to_be64(FILTER_TUPLE_V(params));
+                               t5req->rsvd = cpu_to_be32(isn);
+                               PDBG("%s snd_isn %u\n", __func__, t5req->rsvd);
+                               t5req->opt2 = cpu_to_be32(opt2);
+                       } else {
+                               t6req->params =
+                                         cpu_to_be64(FILTER_TUPLE_V(params));
+                               t6req->rsvd = cpu_to_be32(isn);
+                               PDBG("%s snd_isn %u\n", __func__, t6req->rsvd);
+                               t6req->opt2 = cpu_to_be32(opt2);
+                       }
                }
        } else {
                switch (CHELSIO_CHIP_VERSION(adapter_type)) {
@@ -859,18 +869,24 @@ static int send_connect(struct c4iw_ep *ep)
                req6->opt0 = cpu_to_be64(opt0);
 
                if (is_t4(ep->com.dev->rdev.lldi.adapter_type)) {
-                       req6->params = cpu_to_be32(cxgb4_select_ntuple(
-                                               ep->com.dev->rdev.lldi.ports[0],
-                                               ep->l2t));
+                       req6->params = cpu_to_be32(cxgb4_select_ntuple(netdev,
+                                                                     ep->l2t));
                        req6->opt2 = cpu_to_be32(opt2);
                } else {
-                       t5req6->params = cpu_to_be64(FILTER_TUPLE_V(
-                                               cxgb4_select_ntuple(
-                                               ep->com.dev->rdev.lldi.ports[0],
-                                               ep->l2t)));
-                       t5req6->rsvd = cpu_to_be32(isn);
-                       PDBG("%s snd_isn %u\n", __func__, t5req6->rsvd);
-                       t5req6->opt2 = cpu_to_be32(opt2);
+                       if (is_t5(ep->com.dev->rdev.lldi.adapter_type)) {
+                               t5req6->params =
+                                           cpu_to_be64(FILTER_TUPLE_V(params));
+                               t5req6->rsvd = cpu_to_be32(isn);
+                               PDBG("%s snd_isn %u\n", __func__, t5req6->rsvd);
+                               t5req6->opt2 = cpu_to_be32(opt2);
+                       } else {
+                               t6req6->params =
+                                           cpu_to_be64(FILTER_TUPLE_V(params));
+                               t6req6->rsvd = cpu_to_be32(isn);
+                               PDBG("%s snd_isn %u\n", __func__, t6req6->rsvd);
+                               t6req6->opt2 = cpu_to_be32(opt2);
+                       }
+
                }
        }