diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/arp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index 078709233bc4..1940b4df7699 100644 --- a/net/ipv4/arp.c +++ b/net/ipv4/arp.c | |||
@@ -907,7 +907,8 @@ static int arp_process(struct sk_buff *skb) | |||
907 | devices (strip is candidate) | 907 | devices (strip is candidate) |
908 | */ | 908 | */ |
909 | if (n == NULL && | 909 | if (n == NULL && |
910 | arp->ar_op == htons(ARPOP_REPLY) && | 910 | (arp->ar_op == htons(ARPOP_REPLY) || |
911 | (arp->ar_op == htons(ARPOP_REQUEST) && tip == sip)) && | ||
911 | inet_addr_type(net, sip) == RTN_UNICAST) | 912 | inet_addr_type(net, sip) == RTN_UNICAST) |
912 | n = __neigh_lookup(&arp_tbl, &sip, dev, 1); | 913 | n = __neigh_lookup(&arp_tbl, &sip, dev, 1); |
913 | } | 914 | } |