|
@@ -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);
|