diff options
Diffstat (limited to 'net/ipv6/proc.c')
| -rw-r--r-- | net/ipv6/proc.c | 17 | 
1 files changed, 14 insertions, 3 deletions
diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c index 566798d69f37..d082eaeefa25 100644 --- a/net/ipv6/proc.c +++ b/net/ipv6/proc.c @@ -174,17 +174,28 @@ static void snmp6_seq_show_item(struct seq_file *seq, void __percpu **mib,  				const struct snmp_mib *itemlist)  {  	int i; -	for (i=0; itemlist[i].name; i++) + +	for (i = 0; itemlist[i].name; i++)  		seq_printf(seq, "%-32s\t%lu\n", itemlist[i].name,  			   snmp_fold_field(mib, itemlist[i].entry));  } +static void snmp6_seq_show_item64(struct seq_file *seq, void __percpu **mib, +				  const struct snmp_mib *itemlist, size_t syncpoff) +{ +	int i; + +	for (i = 0; itemlist[i].name; i++) +		seq_printf(seq, "%-32s\t%llu\n", itemlist[i].name, +			   snmp_fold_field64(mib, itemlist[i].entry, syncpoff)); +} +  static int snmp6_seq_show(struct seq_file *seq, void *v)  {  	struct net *net = (struct net *)seq->private; -	snmp6_seq_show_item(seq, (void __percpu **)net->mib.ipv6_statistics, -			    snmp6_ipstats_list); +	snmp6_seq_show_item64(seq, (void __percpu **)net->mib.ipv6_statistics, +			    snmp6_ipstats_list, offsetof(struct ipstats_mib, syncp));  	snmp6_seq_show_item(seq, (void __percpu **)net->mib.icmpv6_statistics,  			    snmp6_icmp6_list);  	snmp6_seq_show_icmpv6msg(seq,  | 
