|
@@ -6589,36 +6589,25 @@ bnx2_save_stats(struct bnx2 *bp)
|
|
|
temp_stats[i] += hw_stats[i];
|
|
|
}
|
|
|
|
|
|
-#define GET_64BIT_NET_STATS64(ctr) \
|
|
|
- (unsigned long) ((unsigned long) (ctr##_hi) << 32) + \
|
|
|
- (unsigned long) (ctr##_lo)
|
|
|
+#define GET_64BIT_NET_STATS64(ctr) \
|
|
|
+ (((u64) (ctr##_hi) << 32) + (u64) (ctr##_lo))
|
|
|
|
|
|
-#define GET_64BIT_NET_STATS32(ctr) \
|
|
|
- (ctr##_lo)
|
|
|
-
|
|
|
-#if (BITS_PER_LONG == 64)
|
|
|
#define GET_64BIT_NET_STATS(ctr) \
|
|
|
GET_64BIT_NET_STATS64(bp->stats_blk->ctr) + \
|
|
|
GET_64BIT_NET_STATS64(bp->temp_stats_blk->ctr)
|
|
|
-#else
|
|
|
-#define GET_64BIT_NET_STATS(ctr) \
|
|
|
- GET_64BIT_NET_STATS32(bp->stats_blk->ctr) + \
|
|
|
- GET_64BIT_NET_STATS32(bp->temp_stats_blk->ctr)
|
|
|
-#endif
|
|
|
|
|
|
#define GET_32BIT_NET_STATS(ctr) \
|
|
|
(unsigned long) (bp->stats_blk->ctr + \
|
|
|
bp->temp_stats_blk->ctr)
|
|
|
|
|
|
-static struct net_device_stats *
|
|
|
-bnx2_get_stats(struct net_device *dev)
|
|
|
+static struct rtnl_link_stats64 *
|
|
|
+bnx2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
|
|
|
{
|
|
|
struct bnx2 *bp = netdev_priv(dev);
|
|
|
- struct net_device_stats *net_stats = &dev->stats;
|
|
|
|
|
|
- if (bp->stats_blk == NULL) {
|
|
|
+ if (bp->stats_blk == NULL)
|
|
|
return net_stats;
|
|
|
- }
|
|
|
+
|
|
|
net_stats->rx_packets =
|
|
|
GET_64BIT_NET_STATS(stat_IfHCInUcastPkts) +
|
|
|
GET_64BIT_NET_STATS(stat_IfHCInMulticastPkts) +
|
|
@@ -8289,7 +8278,7 @@ static const struct net_device_ops bnx2_netdev_ops = {
|
|
|
.ndo_open = bnx2_open,
|
|
|
.ndo_start_xmit = bnx2_start_xmit,
|
|
|
.ndo_stop = bnx2_close,
|
|
|
- .ndo_get_stats = bnx2_get_stats,
|
|
|
+ .ndo_get_stats64 = bnx2_get_stats64,
|
|
|
.ndo_set_rx_mode = bnx2_set_rx_mode,
|
|
|
.ndo_do_ioctl = bnx2_ioctl,
|
|
|
.ndo_validate_addr = eth_validate_addr,
|