Commit e41b5368 authored by Denis V. Lunev's avatar Denis V. Lunev Committed by David S. Miller

ipv6: added net argument to ICMP6_INC_STATS_BH

Signed-off-by: default avatarDenis V. Lunev <den@openvz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a862f6a6
...@@ -141,7 +141,8 @@ DECLARE_SNMP_STAT(struct icmpv6msg_mib, icmpv6msg_statistics); ...@@ -141,7 +141,8 @@ DECLARE_SNMP_STAT(struct icmpv6msg_mib, icmpv6msg_statistics);
#define ICMP6_INC_STATS(net, idev, field) ({ (void)(net); \ #define ICMP6_INC_STATS(net, idev, field) ({ (void)(net); \
_DEVINC(icmpv6, , idev, field); }) _DEVINC(icmpv6, , idev, field); })
#define ICMP6_INC_STATS_BH(idev, field) _DEVINC(icmpv6, _BH, idev, field) #define ICMP6_INC_STATS_BH(net, idev, field) ({ (void)(net); \
_DEVINC(icmpv6, _BH, idev, field); })
#define ICMP6MSGOUT_INC_STATS(idev, field) \ #define ICMP6MSGOUT_INC_STATS(idev, field) \
_DEVINC(icmpv6msg, , idev, field +256) _DEVINC(icmpv6msg, , idev, field +256)
......
...@@ -98,7 +98,8 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ...@@ -98,7 +98,8 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
if (skb->len < offset + sizeof(*dh) || if (skb->len < offset + sizeof(*dh) ||
skb->len < offset + __dccp_basic_hdr_len(dh)) { skb->len < offset + __dccp_basic_hdr_len(dh)) {
ICMP6_INC_STATS_BH(__in6_dev_get(skb->dev), ICMP6_MIB_INERRORS); ICMP6_INC_STATS_BH(net, __in6_dev_get(skb->dev),
ICMP6_MIB_INERRORS);
return; return;
} }
...@@ -107,7 +108,8 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ...@@ -107,7 +108,8 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
&hdr->saddr, dh->dccph_sport, inet6_iif(skb)); &hdr->saddr, dh->dccph_sport, inet6_iif(skb));
if (sk == NULL) { if (sk == NULL) {
ICMP6_INC_STATS_BH(__in6_dev_get(skb->dev), ICMP6_MIB_INERRORS); ICMP6_INC_STATS_BH(net, __in6_dev_get(skb->dev),
ICMP6_MIB_INERRORS);
return; return;
} }
......
...@@ -664,7 +664,7 @@ static int icmpv6_rcv(struct sk_buff *skb) ...@@ -664,7 +664,7 @@ static int icmpv6_rcv(struct sk_buff *skb)
skb_set_network_header(skb, nh); skb_set_network_header(skb, nh);
} }
ICMP6_INC_STATS_BH(idev, ICMP6_MIB_INMSGS); ICMP6_INC_STATS_BH(dev_net(dev), idev, ICMP6_MIB_INMSGS);
saddr = &ipv6_hdr(skb)->saddr; saddr = &ipv6_hdr(skb)->saddr;
daddr = &ipv6_hdr(skb)->daddr; daddr = &ipv6_hdr(skb)->daddr;
...@@ -772,7 +772,7 @@ static int icmpv6_rcv(struct sk_buff *skb) ...@@ -772,7 +772,7 @@ static int icmpv6_rcv(struct sk_buff *skb)
return 0; return 0;
discard_it: discard_it:
ICMP6_INC_STATS_BH(idev, ICMP6_MIB_INERRORS); ICMP6_INC_STATS_BH(dev_net(dev), idev, ICMP6_MIB_INERRORS);
drop_no_count: drop_no_count:
kfree_skb(skb); kfree_skb(skb);
return 0; return 0;
......
...@@ -1483,7 +1483,7 @@ int ip6_push_pending_frames(struct sock *sk) ...@@ -1483,7 +1483,7 @@ int ip6_push_pending_frames(struct sock *sk)
struct inet6_dev *idev = ip6_dst_idev(skb->dst); struct inet6_dev *idev = ip6_dst_idev(skb->dst);
ICMP6MSGOUT_INC_STATS_BH(idev, icmp6_hdr(skb)->icmp6_type); ICMP6MSGOUT_INC_STATS_BH(idev, icmp6_hdr(skb)->icmp6_type);
ICMP6_INC_STATS_BH(idev, ICMP6_MIB_OUTMSGS); ICMP6_INC_STATS_BH(net, idev, ICMP6_MIB_OUTMSGS);
} }
err = ip6_local_out(skb); err = ip6_local_out(skb);
......
...@@ -1475,7 +1475,7 @@ static void mld_sendpack(struct sk_buff *skb) ...@@ -1475,7 +1475,7 @@ static void mld_sendpack(struct sk_buff *skb)
out: out:
if (!err) { if (!err) {
ICMP6MSGOUT_INC_STATS_BH(idev, ICMPV6_MLD2_REPORT); ICMP6MSGOUT_INC_STATS_BH(idev, ICMPV6_MLD2_REPORT);
ICMP6_INC_STATS_BH(idev, ICMP6_MIB_OUTMSGS); ICMP6_INC_STATS_BH(net, idev, ICMP6_MIB_OUTMSGS);
IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_OUTMCASTPKTS); IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_OUTMCASTPKTS);
} else } else
IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_OUTDISCARDS); IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_OUTDISCARDS);
......
...@@ -330,7 +330,8 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ...@@ -330,7 +330,8 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
th->dest, &hdr->saddr, th->source, skb->dev->ifindex); th->dest, &hdr->saddr, th->source, skb->dev->ifindex);
if (sk == NULL) { if (sk == NULL) {
ICMP6_INC_STATS_BH(__in6_dev_get(skb->dev), ICMP6_MIB_INERRORS); ICMP6_INC_STATS_BH(net, __in6_dev_get(skb->dev),
ICMP6_MIB_INERRORS);
return; return;
} }
......
...@@ -156,7 +156,7 @@ SCTP_STATIC void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ...@@ -156,7 +156,7 @@ SCTP_STATIC void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
skb->network_header = saveip; skb->network_header = saveip;
skb->transport_header = savesctp; skb->transport_header = savesctp;
if (!sk) { if (!sk) {
ICMP6_INC_STATS_BH(idev, ICMP6_MIB_INERRORS); ICMP6_INC_STATS_BH(dev_net(skb->dev), idev, ICMP6_MIB_INERRORS);
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment