]> git.openfabrics.org - ~emulex/for-vlad/compat-rdma.git/commitdiff
RDMA/nes: Fix for resolving the neigh
authorTatyana E. Nikolova <tatyana.e.nikolova@intel.com>
Mon, 6 Jul 2015 18:17:10 +0000 (11:17 -0700)
committerTatyana E. Nikolova <tatyana.e.nikolova@intel.com>
Mon, 6 Jul 2015 18:19:48 +0000 (11:19 -0700)
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
linux-next-pending/0023-RDMA-nes-Fix-for-resolving-neigh.patch [new file with mode: 0644]

diff --git a/linux-next-pending/0023-RDMA-nes-Fix-for-resolving-neigh.patch b/linux-next-pending/0023-RDMA-nes-Fix-for-resolving-neigh.patch
new file mode 100644 (file)
index 0000000..5001877
--- /dev/null
@@ -0,0 +1,40 @@
+RDMA/nes: Fix for resolving the neigh
+
+Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>
+---
+ drivers/infiniband/hw/nes/nes_cm.c |    7 +++--
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
+index 9047af4..8a3ad17 100644
+--- a/drivers/infiniband/hw/nes/nes_cm.c
++++ b/drivers/infiniband/hw/nes/nes_cm.c
+@@ -1520,14 +1520,15 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
+       int rc = arpindex;
+       struct net_device *netdev;
+       struct nes_adapter *nesadapter = nesvnic->nesdev->nesadapter;
++      __be32 dst_ipaddr = htonl(dst_ip);
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)
+       struct flowi fl;
+       memset(&fl, 0, sizeof fl);
+-      fl.nl_u.ip4_u.daddr = htonl(dst_ip);
++      fl.nl_u.ip4_u.daddr = dst_ipaddr;
+       if (ip_route_output_key(&init_net, &rt, &fl)) {
+ #else
+-      rt = ip_route_output(&init_net, htonl(dst_ip), 0, 0, 0);
++      rt = ip_route_output(&init_net, dst_ipaddr, nesvnic->local_ipaddr, 0, 0);
+       if (IS_ERR(rt)) {
+ #endif
+               printk(KERN_ERR "%s: ip_route_output_key failed for 0x%08X\n",
+@@ -1545,7 +1546,7 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
+       else
+               netdev = nesvnic->netdev;
+-      neigh = neigh_lookup(&arp_tbl, &rt->rt_gateway, netdev);
++      neigh = dst_neigh_lookup(&rt->dst, &dst_ipaddr);
+       rcu_read_lock();
+       if (neigh) {
+-- 
+1.7.1