]> git.openfabrics.org - ~emulex/compat-rdma_3.12.git/commitdiff
iw_cxgb3: Backports for RHEL6.2 RHEL6.3 and SLES11 SP2
authorVipul Pandya <vipul@chelsio.com>
Tue, 31 Jul 2012 09:58:16 +0000 (15:28 +0530)
committerVipul Pandya <vipul@chelsio.com>
Tue, 31 Jul 2012 10:15:39 +0000 (03:15 -0700)
Signed-off-by: Vipul Pandya <vipul@chelsio.com>
patches/0012-iw_cxgb3-Backports-for-RHEL6.2-RHEL-6.3-and-SLES11-S.patch [new file with mode: 0644]

diff --git a/patches/0012-iw_cxgb3-Backports-for-RHEL6.2-RHEL-6.3-and-SLES11-S.patch b/patches/0012-iw_cxgb3-Backports-for-RHEL6.2-RHEL-6.3-and-SLES11-S.patch
new file mode 100644 (file)
index 0000000..249b410
--- /dev/null
@@ -0,0 +1,75 @@
+From 822db87429e1fe56599a65ed355359362c4d5804 Mon Sep 17 00:00:00 2001
+From: Vipul Pandya <vipul@chelsio.com>
+Date: Mon, 30 Jul 2012 12:38:36 +0530
+Subject: [PATCH 3/4] iw_cxgb3: Backports for RHEL6.2 RHEL 6.3 and SLES11 SP2
+
+Signed-off-by: Vipul Pandya <vipul@chelsio.com>
+---
+ drivers/infiniband/hw/cxgb3/iwch_cm.c |   29 +++++++++++++++++++++++++++++
+ 1 files changed, 29 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
+index 740dcc0..07bef67 100644
+--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
++++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
+@@ -338,12 +338,33 @@ static struct rtable *find_route(struct t3cdev *dev, __be32 local_ip,
+                                __be16 peer_port, u8 tos)
+ {
+       struct rtable *rt;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)
+       struct flowi4 fl4;
+       rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip,
+                                  peer_port, local_port, IPPROTO_TCP,
+                                  tos, 0);
+       if (IS_ERR(rt))
++#else
++      struct flowi fl = {
++              .oif = 0,
++              .nl_u = {
++                      .ip4_u = {
++                              .daddr = peer_ip,
++                              .saddr = local_ip,
++                              .tos = tos
++                      }
++              },
++              .proto = IPPROTO_TCP,
++              .uli_u = {
++                      .ports = {
++                              .sport = local_port,
++                              .dport = peer_port
++                      }
++              }
++      };
++      if (ip_route_output_flow(&init_net, &rt, &fl, NULL, false))
++#endif
+               return NULL;
+       return rt;
+ }
+@@ -1373,7 +1394,11 @@ static int pass_accept_req(struct t3cdev *tdev, struct sk_buff *skb, void *ctx)
+                      __func__);
+               goto reject;
+       }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
+       dst = &rt->dst;
++#else
++      dst = &rt->u.dst;
++#endif
+       l2t = t3_l2t_get(tdev, dst, NULL);
+       if (!l2t) {
+               printk(KERN_ERR MOD "%s - failed to allocate l2t entry!\n",
+@@ -1941,7 +1966,11 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
+               err = -EHOSTUNREACH;
+               goto fail3;
+       }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
+       ep->dst = &rt->dst;
++#else
++      ep->dst = &rt->u.dst;
++#endif
+       ep->l2t = t3_l2t_get(ep->com.tdev, ep->dst, NULL);
+       if (!ep->l2t) {
+               printk(KERN_ERR MOD "%s - cannot alloc l2e.\n", __func__);
+-- 
+1.7.1
+