]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/ipv4/proc.c
snmp: 64bit ipstats_mib for all arches
[net-next-2.6.git] / net / ipv4 / proc.c
index e320ca6b3ef3c16d93df3d47de0192173972bf92..4ae1f203f7cbb5daf7c07bea4a062c352c83700d 100644 (file)
@@ -343,10 +343,12 @@ static int snmp_seq_show(struct seq_file *seq, void *v)
                   IPV4_DEVCONF_ALL(net, FORWARDING) ? 1 : 2,
                   sysctl_ip_default_ttl);
 
+       BUILD_BUG_ON(offsetof(struct ipstats_mib, mibs) != 0);
        for (i = 0; snmp4_ipstats_list[i].name != NULL; i++)
-               seq_printf(seq, " %lu",
-                          snmp_fold_field((void __percpu **)net->mib.ip_statistics,
-                                          snmp4_ipstats_list[i].entry));
+               seq_printf(seq, " %llu",
+                          snmp_fold_field64((void __percpu **)net->mib.ip_statistics,
+                                            snmp4_ipstats_list[i].entry,
+                                            offsetof(struct ipstats_mib, syncp)));
 
        icmp_put(seq);  /* RFC 2011 compatibility */
        icmpmsg_put(seq);
@@ -432,9 +434,10 @@ static int netstat_seq_show(struct seq_file *seq, void *v)
 
        seq_puts(seq, "\nIpExt:");
        for (i = 0; snmp4_ipextstats_list[i].name != NULL; i++)
-               seq_printf(seq, " %lu",
-                          snmp_fold_field((void __percpu **)net->mib.ip_statistics,
-                                          snmp4_ipextstats_list[i].entry));
+               seq_printf(seq, " %llu",
+                          snmp_fold_field64((void __percpu **)net->mib.ip_statistics,
+                                            snmp4_ipextstats_list[i].entry,
+                                            offsetof(struct ipstats_mib, syncp)));
 
        seq_putc(seq, '\n');
        return 0;