Commit dcfc23ca authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by David S. Miller

mib: add struct net to ICMP_INC_STATS_BH

Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 75c939bb
...@@ -32,7 +32,7 @@ extern struct icmp_err icmp_err_convert[]; ...@@ -32,7 +32,7 @@ extern struct icmp_err icmp_err_convert[];
DECLARE_SNMP_STAT(struct icmp_mib, icmp_statistics); DECLARE_SNMP_STAT(struct icmp_mib, icmp_statistics);
DECLARE_SNMP_STAT(struct icmpmsg_mib, icmpmsg_statistics); DECLARE_SNMP_STAT(struct icmpmsg_mib, icmpmsg_statistics);
#define ICMP_INC_STATS(net, field) SNMP_INC_STATS(icmp_statistics, field) #define ICMP_INC_STATS(net, field) SNMP_INC_STATS(icmp_statistics, field)
#define ICMP_INC_STATS_BH(field) SNMP_INC_STATS_BH(icmp_statistics, field) #define ICMP_INC_STATS_BH(net, field) SNMP_INC_STATS_BH(icmp_statistics, field)
#define ICMPMSGOUT_INC_STATS(field) SNMP_INC_STATS(icmpmsg_statistics, field+256) #define ICMPMSGOUT_INC_STATS(field) SNMP_INC_STATS(icmpmsg_statistics, field+256)
#define ICMPMSGIN_INC_STATS_BH(field) SNMP_INC_STATS_BH(icmpmsg_statistics, field) #define ICMPMSGIN_INC_STATS_BH(field) SNMP_INC_STATS_BH(icmpmsg_statistics, field)
......
...@@ -208,7 +208,7 @@ static void dccp_v4_err(struct sk_buff *skb, u32 info) ...@@ -208,7 +208,7 @@ static void dccp_v4_err(struct sk_buff *skb, u32 info)
struct net *net = dev_net(skb->dev); struct net *net = dev_net(skb->dev);
if (skb->len < (iph->ihl << 2) + 8) { if (skb->len < (iph->ihl << 2) + 8) {
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(net, ICMP_MIB_INERRORS);
return; return;
} }
...@@ -216,7 +216,7 @@ static void dccp_v4_err(struct sk_buff *skb, u32 info) ...@@ -216,7 +216,7 @@ static void dccp_v4_err(struct sk_buff *skb, u32 info)
iph->daddr, dh->dccph_dport, iph->daddr, dh->dccph_dport,
iph->saddr, dh->dccph_sport, inet_iif(skb)); iph->saddr, dh->dccph_sport, inet_iif(skb));
if (sk == NULL) { if (sk == NULL) {
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(net, ICMP_MIB_INERRORS);
return; return;
} }
......
...@@ -763,7 +763,7 @@ static void icmp_unreach(struct sk_buff *skb) ...@@ -763,7 +763,7 @@ static void icmp_unreach(struct sk_buff *skb)
out: out:
return; return;
out_err: out_err:
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(net, ICMP_MIB_INERRORS);
goto out; goto out;
} }
...@@ -803,7 +803,7 @@ static void icmp_redirect(struct sk_buff *skb) ...@@ -803,7 +803,7 @@ static void icmp_redirect(struct sk_buff *skb)
out: out:
return; return;
out_err: out_err:
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(dev_net(skb->dev), ICMP_MIB_INERRORS);
goto out; goto out;
} }
...@@ -874,7 +874,7 @@ static void icmp_timestamp(struct sk_buff *skb) ...@@ -874,7 +874,7 @@ static void icmp_timestamp(struct sk_buff *skb)
out: out:
return; return;
out_err: out_err:
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(dev_net(skb->dst->dev), ICMP_MIB_INERRORS);
goto out; goto out;
} }
...@@ -994,7 +994,7 @@ int icmp_rcv(struct sk_buff *skb) ...@@ -994,7 +994,7 @@ int icmp_rcv(struct sk_buff *skb)
skb_set_network_header(skb, nh); skb_set_network_header(skb, nh);
} }
ICMP_INC_STATS_BH(ICMP_MIB_INMSGS); ICMP_INC_STATS_BH(net, ICMP_MIB_INMSGS);
switch (skb->ip_summed) { switch (skb->ip_summed) {
case CHECKSUM_COMPLETE: case CHECKSUM_COMPLETE:
...@@ -1053,7 +1053,7 @@ drop: ...@@ -1053,7 +1053,7 @@ drop:
kfree_skb(skb); kfree_skb(skb);
return 0; return 0;
error: error:
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(net, ICMP_MIB_INERRORS);
goto drop; goto drop;
} }
......
...@@ -346,14 +346,14 @@ void tcp_v4_err(struct sk_buff *skb, u32 info) ...@@ -346,14 +346,14 @@ void tcp_v4_err(struct sk_buff *skb, u32 info)
struct net *net = dev_net(skb->dev); struct net *net = dev_net(skb->dev);
if (skb->len < (iph->ihl << 2) + 8) { if (skb->len < (iph->ihl << 2) + 8) {
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(net, ICMP_MIB_INERRORS);
return; return;
} }
sk = inet_lookup(net, &tcp_hashinfo, iph->daddr, th->dest, sk = inet_lookup(net, &tcp_hashinfo, iph->daddr, th->dest,
iph->saddr, th->source, inet_iif(skb)); iph->saddr, th->source, inet_iif(skb));
if (!sk) { if (!sk) {
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(net, ICMP_MIB_INERRORS);
return; return;
} }
if (sk->sk_state == TCP_TIME_WAIT) { if (sk->sk_state == TCP_TIME_WAIT) {
......
...@@ -359,7 +359,7 @@ void __udp4_lib_err(struct sk_buff *skb, u32 info, struct hlist_head udptable[]) ...@@ -359,7 +359,7 @@ void __udp4_lib_err(struct sk_buff *skb, u32 info, struct hlist_head udptable[])
sk = __udp4_lib_lookup(net, iph->daddr, uh->dest, sk = __udp4_lib_lookup(net, iph->daddr, uh->dest,
iph->saddr, uh->source, skb->dev->ifindex, udptable); iph->saddr, uh->source, skb->dev->ifindex, udptable);
if (sk == NULL) { if (sk == NULL) {
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(net, ICMP_MIB_INERRORS);
return; /* No socket for error */ return; /* No socket for error */
} }
......
...@@ -61,6 +61,7 @@ ...@@ -61,6 +61,7 @@
#include <net/sctp/sctp.h> #include <net/sctp/sctp.h>
#include <net/sctp/sm.h> #include <net/sctp/sm.h>
#include <net/sctp/checksum.h> #include <net/sctp/checksum.h>
#include <net/net_namespace.h>
/* Forward declarations for internal helpers. */ /* Forward declarations for internal helpers. */
static int sctp_rcv_ootb(struct sk_buff *); static int sctp_rcv_ootb(struct sk_buff *);
...@@ -534,7 +535,7 @@ void sctp_v4_err(struct sk_buff *skb, __u32 info) ...@@ -534,7 +535,7 @@ void sctp_v4_err(struct sk_buff *skb, __u32 info)
int err; int err;
if (skb->len < ihlen + 8) { if (skb->len < ihlen + 8) {
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(&init_net, ICMP_MIB_INERRORS);
return; return;
} }
...@@ -548,7 +549,7 @@ void sctp_v4_err(struct sk_buff *skb, __u32 info) ...@@ -548,7 +549,7 @@ void sctp_v4_err(struct sk_buff *skb, __u32 info)
skb->network_header = saveip; skb->network_header = saveip;
skb->transport_header = savesctp; skb->transport_header = savesctp;
if (!sk) { if (!sk) {
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS); ICMP_INC_STATS_BH(&init_net, ICMP_MIB_INERRORS);
return; return;
} }
/* Warning: The sock lock is held. Remember to call /* Warning: The sock lock is held. Remember to call
......
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