From 93d2ab27a09adf0550db74f7cbc5c18c9c5dbcb9 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Sun, 26 Jun 2005 18:02:44 -0400 Subject: [PATCH] --- yaml --- r: 3451 b: refs/heads/master c: 97f568d8e3dc031b092e6086c0534d5411fb2cf5 h: refs/heads/master i: 3449: 0ffae9dfd2798a83a719514b802dd1917ce6e253 3447: b6849d82ef8b97c1b841c936524af22a61e029da v: v3 --- [refs] | 2 +- trunk/drivers/net/8139cp.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index c93b5a7d1437..4ba602f479e0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 223d47278a77091b62e7d063e95860f63ca55e20 +refs/heads/master: 97f568d8e3dc031b092e6086c0534d5411fb2cf5 diff --git a/trunk/drivers/net/8139cp.c b/trunk/drivers/net/8139cp.c index ca7746dd164f..e4b3c5c88542 100644 --- a/trunk/drivers/net/8139cp.c +++ b/trunk/drivers/net/8139cp.c @@ -1516,22 +1516,22 @@ static void cp_get_ethtool_stats (struct net_device *dev, struct ethtool_stats *estats, u64 *tmp_stats) { struct cp_private *cp = netdev_priv(dev); - unsigned int work = 100; int i; + memset(cp->nic_stats, 0, sizeof(struct cp_dma_stats)); + /* begin NIC statistics dump */ cpw32(StatsAddr + 4, (cp->nic_stats_dma >> 16) >> 16); cpw32(StatsAddr, (cp->nic_stats_dma & 0xffffffff) | DumpStats); cpr32(StatsAddr); - while (work-- > 0) { + for (i = 0; i < 1000; i++) { if ((cpr32(StatsAddr) & DumpStats) == 0) break; - cpu_relax(); + udelay(10); } - - if (cpr32(StatsAddr) & DumpStats) - return /* -EIO */; + cpw32(StatsAddr, 0); + cpw32(StatsAddr + 4, 0); i = 0; tmp_stats[i++] = le64_to_cpu(cp->nic_stats->tx_ok);