summaryrefslogtreecommitdiffstats
path: root/drivers/net/s2io.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2006-02-03 10:45:12 +0100
committerJeff Garzik <jgarzik@pobox.com>2006-02-07 08:51:40 +0100
commitfe9313956d67367cc91c5a6989bafc4315801402 (patch)
treec9bc140dcb92d8fa8a3afc6ce81e86d42882c289 /drivers/net/s2io.c
parent[PATCH] S2io: Large Receive Offload (LRO) feature(v2) for Neterion (s2io) 10G... (diff)
downloadlinux-fe9313956d67367cc91c5a6989bafc4315801402.tar.xz
linux-fe9313956d67367cc91c5a6989bafc4315801402.zip
[PATCH] git-netdev-all: s2io fixes
Fix this: drivers/built-in.o(.text+0x89469): In function `s2io_get_ethtool_stats': drivers/net/s2io.c:5209: undefined reference to `__udivdi3' Cc: Ravinandan Arakali <Ravinandan.Arakali@neterion.com> Cc: Ananda Raju <Ananda.Raju@neterion.com> Cc: Adrian Bunk <bunk@stusta.de> Cc: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/net/s2io.c')
-rw-r--r--drivers/net/s2io.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 4e392914971e..e7a9b0d32a18 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -64,6 +64,7 @@
#include <asm/system.h>
#include <asm/uaccess.h>
#include <asm/io.h>
+#include <asm/div64.h>
/* local include */
#include "s2io.h"
@@ -5110,6 +5111,7 @@ static void s2io_get_ethtool_stats(struct net_device *dev,
int i = 0;
nic_t *sp = dev->priv;
StatInfo_t *stat_info = sp->mac_control.stats_info;
+ u64 tmp;
s2io_updt_stats(sp);
tmp_stats[i++] =
@@ -5205,12 +5207,12 @@ static void s2io_get_ethtool_stats(struct net_device *dev,
tmp_stats[i++] = stat_info->sw_stat.sending_both;
tmp_stats[i++] = stat_info->sw_stat.outof_sequence_pkts;
tmp_stats[i++] = stat_info->sw_stat.flush_max_pkts;
- if (stat_info->sw_stat.num_aggregations)
- tmp_stats[i++] = stat_info->sw_stat.sum_avg_pkts_aggregated /
- stat_info->sw_stat.num_aggregations;
- else
- tmp_stats[i++] = 0;
-
+ tmp = 0;
+ if (stat_info->sw_stat.num_aggregations) {
+ tmp = stat_info->sw_stat.sum_avg_pkts_aggregated;
+ do_div(tmp, stat_info->sw_stat.num_aggregations);
+ }
+ tmp_stats[i++] = tmp;
}
static int s2io_ethtool_get_regs_len(struct net_device *dev)