aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/arp.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/arp.c')
-rw-r--r--net/ipv4/arp.c5
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);