projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
29c994e
)
net: bridge: don't increment tx_dropped in br_do_proxy_arp
author
Nikolay Aleksandrov
<
[email protected]
>
Tue, 30 Aug 2016 15:44:29 +0000
(17:44 +0200)
committer
David S. Miller
<
[email protected]
>
Thu, 1 Sep 2016 23:35:30 +0000
(16:35 -0700)
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 <
[email protected]
>
CC: Roopa Prabhu <
[email protected]
>
CC: Stephen Hemminger <
[email protected]
>
CC:
[email protected]
Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP")
Signed-off-by: Nikolay Aleksandrov <
[email protected]
>
Signed-off-by: David S. Miller <
[email protected]
>
net/bridge/br_input.c
patch
|
blob
|
history
diff --git
a/net/bridge/br_input.c
b/net/bridge/br_input.c
index 8e486203d133a7f9158f94fda6dbd03ace32c52b..abe11f085479c62d5ac969d8d2d13aa5a6f762db 100644
(file)
--- a/
net/bridge/br_input.c
+++ b/
net/bridge/br_input.c
@@
-80,13
+80,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) ||