summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kurz <akurz@blala.de>2010-04-16 05:01:01 +0200
committerDavid S. Miller <davem@davemloft.net>2010-04-22 01:27:55 +0200
commitdf245dce572bc22b230a05532a3f9daee50effb5 (patch)
treeae2dbed36263a6e42bc671c42efd15bf0531c342
parentxfrm6: ensure to use the same dev when building a bundle (diff)
downloadlinux-df245dce572bc22b230a05532a3f9daee50effb5.tar.xz
linux-df245dce572bc22b230a05532a3f9daee50effb5.zip
net: 3c574_cs fix stats.tx_bytes counter
Update the stats counter calculation in 3c574_cs, similar to the method used in 3c589_cs. This corrects the contents of the counter on tests using a "Megahertz 574B" card. [linux@dominikbrodowski.net: clean up commit message] Signed-off-by: Alexander Kurz <linux@kbdbabel.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/pcmcia/3c574_cs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index 3d1d3a7b7ed3..757f87bb1db3 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -781,8 +781,13 @@ static netdev_tx_t el3_start_xmit(struct sk_buff *skb,
inw(ioaddr + EL3_STATUS));
spin_lock_irqsave(&lp->window_lock, flags);
+
+ dev->stats.tx_bytes += skb->len;
+
+ /* Put out the doubleword header... */
outw(skb->len, ioaddr + TX_FIFO);
outw(0, ioaddr + TX_FIFO);
+ /* ... and the packet rounded to a doubleword. */
outsl(ioaddr + TX_FIFO, skb->data, (skb->len+3)>>2);
dev->trans_start = jiffies;
@@ -1021,8 +1026,6 @@ static void update_stats(struct net_device *dev)
/* BadSSD */ inb(ioaddr + 12);
up = inb(ioaddr + 13);
- dev->stats.tx_bytes += tx + ((up & 0xf0) << 12);
-
EL3WINDOW(1);
}