From: Al Viro Date: Fri, 21 Dec 2007 06:20:23 +0000 (+0000) Subject: typhoon: endianness bug in tx/rx byte counters X-Git-Tag: v2.6.24-rc7~40^2~16 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=73eac0640ebfb30fee99e06ee029444af0d7ae8d;p=linux-2.6-omap-h63xx.git typhoon: endianness bug in tx/rx byte counters txBytes and rxBytesGood are both 64bit; using le32_to_cpu() won't work on big-endian for obvious reasons. Signed-off-by: Al Viro Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c index 94ac5869bb1..67f31a21beb 100644 --- a/drivers/net/typhoon.c +++ b/drivers/net/typhoon.c @@ -977,12 +977,12 @@ typhoon_do_get_stats(struct typhoon *tp) * ethtool_ops->get_{strings,stats}() */ stats->tx_packets = le32_to_cpu(s->txPackets); - stats->tx_bytes = le32_to_cpu(s->txBytes); + stats->tx_bytes = le64_to_cpu(s->txBytes); stats->tx_errors = le32_to_cpu(s->txCarrierLost); stats->tx_carrier_errors = le32_to_cpu(s->txCarrierLost); stats->collisions = le32_to_cpu(s->txMultipleCollisions); stats->rx_packets = le32_to_cpu(s->rxPacketsGood); - stats->rx_bytes = le32_to_cpu(s->rxBytesGood); + stats->rx_bytes = le64_to_cpu(s->rxBytesGood); stats->rx_fifo_errors = le32_to_cpu(s->rxFifoOverruns); stats->rx_errors = le32_to_cpu(s->rxFifoOverruns) + le32_to_cpu(s->BadSSD) + le32_to_cpu(s->rxCrcErrors);