diff --git a/[refs] b/[refs] index d0d1b3bb1766..ff06912c6325 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5dc7883f2a7c25f8df40d7479687153558cd531b +refs/heads/master: 70620c46ac2b45c24b0f22002fdf5ddd1f7daf81 diff --git a/trunk/net/ipv4/arp.c b/trunk/net/ipv4/arp.c index 59402be133f0..63e49890ad31 100644 --- a/trunk/net/ipv4/arp.c +++ b/trunk/net/ipv4/arp.c @@ -863,7 +863,8 @@ static int arp_process(struct sk_buff *skb) if (addr_type == RTN_UNICAST && (arp_fwd_proxy(in_dev, dev, rt) || arp_fwd_pvlan(in_dev, dev, rt, sip, tip) || - pneigh_lookup(&arp_tbl, net, &tip, dev, 0))) { + (rt->dst.dev != dev && + pneigh_lookup(&arp_tbl, net, &tip, dev, 0)))) { n = neigh_event_ns(&arp_tbl, sha, &sip, dev); if (n) neigh_release(n);