diff options
author | Rick Jones <rick.jones2@hp.com> | 2014-09-25 13:55:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-09-28 17:30:35 -0400 |
commit | 825bae5d97d351ddf9720400df133fc4b1bc6a13 (patch) | |
tree | 2a6e8fd84737d9d283a92b4820007a3ea39c829a /net/ipv4/arp.c | |
parent | 18d0264f630e200772bf236ac5747c47e908501e (diff) |
arp: Do not perturb drop profiles with ignored ARP packets
We do not wish to disturb dropwatch or perf drop profiles with an ARP
we will ignore.
Signed-off-by: Rick Jones <rick.jones2@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/arp.c')
-rw-r--r-- | net/ipv4/arp.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index 1a9b99e04465..16acb59d665e 100644 --- a/net/ipv4/arp.c +++ b/net/ipv4/arp.c | |||
@@ -953,10 +953,11 @@ static int arp_rcv(struct sk_buff *skb, struct net_device *dev, | |||
953 | { | 953 | { |
954 | const struct arphdr *arp; | 954 | const struct arphdr *arp; |
955 | 955 | ||
956 | /* do not tweak dropwatch on an ARP we will ignore */ | ||
956 | if (dev->flags & IFF_NOARP || | 957 | if (dev->flags & IFF_NOARP || |
957 | skb->pkt_type == PACKET_OTHERHOST || | 958 | skb->pkt_type == PACKET_OTHERHOST || |
958 | skb->pkt_type == PACKET_LOOPBACK) | 959 | skb->pkt_type == PACKET_LOOPBACK) |
959 | goto freeskb; | 960 | goto consumeskb; |
960 | 961 | ||
961 | skb = skb_share_check(skb, GFP_ATOMIC); | 962 | skb = skb_share_check(skb, GFP_ATOMIC); |
962 | if (!skb) | 963 | if (!skb) |
@@ -974,6 +975,9 @@ static int arp_rcv(struct sk_buff *skb, struct net_device *dev, | |||
974 | 975 | ||
975 | return NF_HOOK(NFPROTO_ARP, NF_ARP_IN, skb, dev, NULL, arp_process); | 976 | return NF_HOOK(NFPROTO_ARP, NF_ARP_IN, skb, dev, NULL, arp_process); |
976 | 977 | ||
978 | consumeskb: | ||
979 | consume_skb(skb); | ||
980 | return 0; | ||
977 | freeskb: | 981 | freeskb: |
978 | kfree_skb(skb); | 982 | kfree_skb(skb); |
979 | out_of_mem: | 983 | out_of_mem: |