net: bridge: don't increment tx_dropped in br_do_proxy_arp
commit 85a3d4a9356b595d5440c3f1bf07ee7cecca1567 upstream. pskb_may_pull may fail due to various reasons (e.g. alloc failure), but the skb isn't changed/dropped and processing continues so we shouldn't increment tx_dropped. CC: Kyeyoon Park <kyeyoonp@codeaurora.org> CC: Roopa Prabhu <roopa@cumulusnetworks.com> CC: Stephen Hemminger <stephen@networkplumber.org> CC: bridge@lists.linux-foundation.org Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP") Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6c0c7c62ca
commit
c94875da94
@ -78,13 +78,10 @@ static void br_do_proxy_arp(struct sk_buff *skb, struct net_bridge *br,
|
||||
|
||||
BR_INPUT_SKB_CB(skb)->proxyarp_replied = false;
|
||||
|
||||
if (dev->flags & IFF_NOARP)
|
||||
if ((dev->flags & IFF_NOARP) ||
|
||||
!pskb_may_pull(skb, arp_hdr_len(dev)))
|
||||
return;
|
||||
|
||||
if (!pskb_may_pull(skb, arp_hdr_len(dev))) {
|
||||
dev->stats.tx_dropped++;
|
||||
return;
|
||||
}
|
||||
parp = arp_hdr(skb);
|
||||
|
||||
if (parp->ar_pro != htons(ETH_P_IP) ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user