[NET] 64 bit byte counter for 2.6.3

From: Markus Hästbacka
Date: Wed Feb 18 2004 - 11:57:45 EST


Ok, Here's a patch for 64 bit byte counters for 2.6.3. For any intrested
users to try.

That means in english that the limit for RX bytes and TX bytes (in
ifconfig for example) is much higher than the old 4GB limit on 32 bit
systems.

Orginal patch by Miika Pekkarinen, ported forward from 2.5 by me.

Patch says 2.6.3-rc1, but patches cleanly on 2.6.3.

Markus
--- linux-2.6.3-rc1/net/core/dev.c 2004-02-08 01:07:55.000000000 +0200
+++ linux-2.6.3-rc1-b/net/core/dev.c 2004-02-07 15:29:32.000000000 +0200
@@ -2042,8 +2042,8 @@
if (dev->get_stats) {
struct net_device_stats *stats = dev->get_stats(dev);

- seq_printf(seq, "%6s:%8lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu "
- "%8lu %7lu %4lu %4lu %4lu %5lu %7lu %10lu\n",
+ seq_printf(seq, "%6s:%14llu %7lu %4lu %4lu %4lu %5lu %10lu %9lu "
+ "%14llu %7lu %4lu %4lu %4lu %5lu %7lu %10lu\n",
dev->name, stats->rx_bytes, stats->rx_packets,
stats->rx_errors,
stats->rx_dropped + stats->rx_missed_errors,
--- linux-2.6.3-rc1/include/linux/netdevice.h 2004-02-08 01:05:47.000000000 +0200
+++ linux-2.6.3-rc1-b/include/linux/netdevice.h 2004-02-07 15:21:26.000000000 +0200
@@ -103,8 +103,8 @@
{
unsigned long rx_packets; /* total packets received */
unsigned long tx_packets; /* total packets transmitted */
- unsigned long rx_bytes; /* total bytes received */
- unsigned long tx_bytes; /* total bytes transmitted */
+ unsigned long long rx_bytes; /* total bytes received */
+ unsigned long long tx_bytes; /* total bytes transmitted */
unsigned long rx_errors; /* bad packets received */
unsigned long tx_errors; /* packet transmit problems */
unsigned long rx_dropped; /* no space in linux buffers */