--- /dev/null
+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