diff options
Diffstat (limited to 'net/ipv4/arp.c')
-rw-r--r-- | net/ipv4/arp.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index 9eb6d3ab2977..46edf1c32a40 100644 --- a/net/ipv4/arp.c +++ b/net/ipv4/arp.c | |||
@@ -835,9 +835,8 @@ static int arp_process(struct sk_buff *skb) | |||
835 | } | 835 | } |
836 | goto out; | 836 | goto out; |
837 | } else if (IN_DEV_FORWARD(in_dev)) { | 837 | } else if (IN_DEV_FORWARD(in_dev)) { |
838 | if ((rt->rt_flags&RTCF_DNAT) || | 838 | if (addr_type == RTN_UNICAST && rt->u.dst.dev != dev && |
839 | (addr_type == RTN_UNICAST && rt->u.dst.dev != dev && | 839 | (arp_fwd_proxy(in_dev, rt) || pneigh_lookup(&arp_tbl, &init_net, &tip, dev, 0))) { |
840 | (arp_fwd_proxy(in_dev, rt) || pneigh_lookup(&arp_tbl, &init_net, &tip, dev, 0)))) { | ||
841 | n = neigh_event_ns(&arp_tbl, sha, &sip, dev); | 840 | n = neigh_event_ns(&arp_tbl, sha, &sip, dev); |
842 | if (n) | 841 | if (n) |
843 | neigh_release(n); | 842 | neigh_release(n); |