|
@@ -1520,8 +1520,9 @@ 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);
|
|
|
|
|
|
- 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)) {
|
|
|
printk(KERN_ERR "%s: ip_route_output_key failed for 0x%08X\n",
|
|
|
__func__, dst_ip);
|
|
@@ -1533,7 +1534,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) {
|