mirror of https://gitee.com/openkylin/linux.git
ipv6: consistent use of IP6_INC_STATS_BH() in ip6_forward()
ip6_forward() runs from softirq context, we can use the SNMP macros assuming this. Use same indentation for all IP6_INC_STATS_BH() calls. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
22781a5b9c
commit
15c77d8b3b
|
@ -336,7 +336,8 @@ int ip6_forward(struct sk_buff *skb)
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
if (!xfrm6_policy_check(NULL, XFRM_POLICY_FWD, skb)) {
|
if (!xfrm6_policy_check(NULL, XFRM_POLICY_FWD, skb)) {
|
||||||
IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_INDISCARDS);
|
IP6_INC_STATS_BH(net, ip6_dst_idev(dst),
|
||||||
|
IPSTATS_MIB_INDISCARDS);
|
||||||
goto drop;
|
goto drop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,8 +371,8 @@ int ip6_forward(struct sk_buff *skb)
|
||||||
/* Force OUTPUT device used as source address */
|
/* Force OUTPUT device used as source address */
|
||||||
skb->dev = dst->dev;
|
skb->dev = dst->dev;
|
||||||
icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, 0);
|
icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, 0);
|
||||||
IP6_INC_STATS_BH(net,
|
IP6_INC_STATS_BH(net, ip6_dst_idev(dst),
|
||||||
ip6_dst_idev(dst), IPSTATS_MIB_INHDRERRORS);
|
IPSTATS_MIB_INHDRERRORS);
|
||||||
|
|
||||||
kfree_skb(skb);
|
kfree_skb(skb);
|
||||||
return -ETIMEDOUT;
|
return -ETIMEDOUT;
|
||||||
|
@ -384,14 +385,15 @@ int ip6_forward(struct sk_buff *skb)
|
||||||
if (proxied > 0)
|
if (proxied > 0)
|
||||||
return ip6_input(skb);
|
return ip6_input(skb);
|
||||||
else if (proxied < 0) {
|
else if (proxied < 0) {
|
||||||
IP6_INC_STATS(net, ip6_dst_idev(dst),
|
IP6_INC_STATS_BH(net, ip6_dst_idev(dst),
|
||||||
IPSTATS_MIB_INDISCARDS);
|
IPSTATS_MIB_INDISCARDS);
|
||||||
goto drop;
|
goto drop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!xfrm6_route_forward(skb)) {
|
if (!xfrm6_route_forward(skb)) {
|
||||||
IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_INDISCARDS);
|
IP6_INC_STATS_BH(net, ip6_dst_idev(dst),
|
||||||
|
IPSTATS_MIB_INDISCARDS);
|
||||||
goto drop;
|
goto drop;
|
||||||
}
|
}
|
||||||
dst = skb_dst(skb);
|
dst = skb_dst(skb);
|
||||||
|
@ -448,16 +450,17 @@ int ip6_forward(struct sk_buff *skb)
|
||||||
/* Again, force OUTPUT device used as source address */
|
/* Again, force OUTPUT device used as source address */
|
||||||
skb->dev = dst->dev;
|
skb->dev = dst->dev;
|
||||||
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
|
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
|
||||||
IP6_INC_STATS_BH(net,
|
IP6_INC_STATS_BH(net, ip6_dst_idev(dst),
|
||||||
ip6_dst_idev(dst), IPSTATS_MIB_INTOOBIGERRORS);
|
IPSTATS_MIB_INTOOBIGERRORS);
|
||||||
IP6_INC_STATS_BH(net,
|
IP6_INC_STATS_BH(net, ip6_dst_idev(dst),
|
||||||
ip6_dst_idev(dst), IPSTATS_MIB_FRAGFAILS);
|
IPSTATS_MIB_FRAGFAILS);
|
||||||
kfree_skb(skb);
|
kfree_skb(skb);
|
||||||
return -EMSGSIZE;
|
return -EMSGSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (skb_cow(skb, dst->dev->hard_header_len)) {
|
if (skb_cow(skb, dst->dev->hard_header_len)) {
|
||||||
IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTDISCARDS);
|
IP6_INC_STATS_BH(net, ip6_dst_idev(dst),
|
||||||
|
IPSTATS_MIB_OUTDISCARDS);
|
||||||
goto drop;
|
goto drop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue