From b80c54106a3099e89c575e768c382f976a31c455 Mon Sep 17 00:00:00 2001 From: "Tatyana E. Nikolova" Date: Mon, 6 Jul 2015 11:17:10 -0700 Subject: [PATCH] RDMA/nes: Fix for resolving the neigh Signed-off-by: Tatyana Nikolova --- ...023-RDMA-nes-Fix-for-resolving-neigh.patch | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 linux-next-pending/0023-RDMA-nes-Fix-for-resolving-neigh.patch 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 index 0000000..5001877 --- /dev/null +++ b/linux-next-pending/0023-RDMA-nes-Fix-for-resolving-neigh.patch @@ -0,0 +1,40 @@ +RDMA/nes: Fix for resolving the neigh + +Signed-off-by: Tatyana Nikolova +--- + 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 -- 2.46.0