]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnxt_en: Add bnxt_get_num_stats() to centrally get the number of ethtool stats.
authorMichael Chan <michael.chan@broadcom.com>
Mon, 24 Jul 2017 16:34:23 +0000 (12:34 -0400)
committerChuck Anderson <chuck.anderson@oracle.com>
Wed, 13 Sep 2017 04:42:03 +0000 (21:42 -0700)
Orabug: 26726982

Instead of duplicating the logic multiple times.  Also, it is unnecessary
to zero the buffer in .get_ethtool_stats() because it is already zeroed
by the caller.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 5c8227d0d3b1eb1ad8f98d0b6dc619d70f2cfa04)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

index f931a350bbb0a6efc083c07ebdb44de36ca4cdff..c361c521982a3a81b510c3ded91e9d177922aa30 100644 (file)
@@ -202,19 +202,23 @@ static const struct {
 
 #define BNXT_NUM_PORT_STATS ARRAY_SIZE(bnxt_port_stats_arr)
 
+static int bnxt_get_num_stats(struct bnxt *bp)
+{
+       int num_stats = BNXT_NUM_STATS * bp->cp_nr_rings;
+
+       if (bp->flags & BNXT_FLAG_PORT_STATS)
+               num_stats += BNXT_NUM_PORT_STATS;
+
+       return num_stats;
+}
+
 static int bnxt_get_sset_count(struct net_device *dev, int sset)
 {
        struct bnxt *bp = netdev_priv(dev);
 
        switch (sset) {
-       case ETH_SS_STATS: {
-               int num_stats = BNXT_NUM_STATS * bp->cp_nr_rings;
-
-               if (bp->flags & BNXT_FLAG_PORT_STATS)
-                       num_stats += BNXT_NUM_PORT_STATS;
-
-               return num_stats;
-       }
+       case ETH_SS_STATS:
+               return bnxt_get_num_stats(bp);
        case ETH_SS_TEST:
                if (!bp->num_tests)
                        return -EOPNOTSUPP;
@@ -229,11 +233,8 @@ static void bnxt_get_ethtool_stats(struct net_device *dev,
 {
        u32 i, j = 0;
        struct bnxt *bp = netdev_priv(dev);
-       u32 buf_size = sizeof(struct ctx_hw_stats) * bp->cp_nr_rings;
        u32 stat_fields = sizeof(struct ctx_hw_stats) / 8;
 
-       memset(buf, 0, buf_size);
-
        if (!bp->bnapi)
                return;
 
@@ -860,7 +861,7 @@ static void bnxt_get_drvinfo(struct net_device *dev,
                strlcpy(info->fw_version, bp->fw_ver_str,
                        sizeof(info->fw_version));
        strlcpy(info->bus_info, pci_name(bp->pdev), sizeof(info->bus_info));
-       info->n_stats = BNXT_NUM_STATS * bp->cp_nr_rings;
+       info->n_stats = bnxt_get_num_stats(bp);
        info->testinfo_len = bp->num_tests;
        /* TODO CHIMP_FW: eeprom dump details */
        info->eedump_len = 0;