From: Eric Dumazet Date: Mon, 23 Aug 2010 19:44:56 +0000 (+0200) Subject: iproute2: add 64bit support to ifstat X-Git-Tag: v2.6.37~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a571587d0b27a2c1492019c3abeb6fb0c0e606ce;p=thirdparty%2Fiproute2.git iproute2: add 64bit support to ifstat Le lundi 23 août 2010 à 10:33 -0700, Stephen Hemminger a écrit : > I think this breaks the wraparound detection code in this command. > > OK lets fix the bug only, before adding 64bit counters capabilities. Thanks [PATCH] iproute2: add 64bit arches support to ifstat ifstat assumes IFLA_STATS fields are "unsigned long", but they are __u32. This fix is needed to let ifstat run on 64bit arches. Signed-off-by: Eric Dumazet --- diff --git a/misc/ifstat.c b/misc/ifstat.c index 5cf2e0103..5b229e720 100644 --- a/misc/ifstat.c +++ b/misc/ifstat.c @@ -49,7 +49,7 @@ int npatterns; char info_source[128]; int source_mismatch; -#define MAXS (sizeof(struct rtnl_link_stats)/sizeof(unsigned long)) +#define MAXS (sizeof(struct rtnl_link_stats)/sizeof(__u32)) struct ifstat_ent { @@ -58,7 +58,7 @@ struct ifstat_ent int ifindex; unsigned long long val[MAXS]; double rate[MAXS]; - unsigned long ival[MAXS]; + __u32 ival[MAXS]; }; struct ifstat_ent *kern_db; @@ -187,7 +187,7 @@ void load_raw_table(FILE *fp) *next++ = 0; if (sscanf(p, "%llu", n->val+i) != 1) abort(); - n->ival[i] = (unsigned long)n->val[i]; + n->ival[i] = (__u32)n->val[i]; p = next; if (!(next = strchr(p, ' '))) abort(); @@ -563,8 +563,6 @@ static void usage(void) " -s, --noupdate don;t update history\n" " -t, --interval=SECS report average over the last SECS\n" " -V, --version output version information\n" -" -z, --zeros show entries with zero activity\n" -" -e, --errors show errors\n" " -z, --zeros show entries with zero activity\n"); exit(-1); @@ -581,8 +579,6 @@ static const struct option longopts[] = { { "interval", 1, 0, 't' }, { "version", 0, 0, 'V' }, { "zeros", 0, 0, 'z' }, - { "errors", 0, 0, 'e' }, - { "zeros", 0, 0, 'z' }, { 0 } };