aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/hw/nes/nes_nic.c12
-rw-r--r--drivers/net/benet/be_ethtool.c11
-rw-r--r--drivers/net/bnx2x_main.c60
-rw-r--r--drivers/net/ibm_newemac/core.c10
-rw-r--r--drivers/net/igbvf/ethtool.c25
-rw-r--r--drivers/net/niu.c7
6 files changed, 70 insertions, 55 deletions
diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
index e593af3354b8..de18fdfdadf2 100644
--- a/drivers/infiniband/hw/nes/nes_nic.c
+++ b/drivers/infiniband/hw/nes/nes_nic.c
@@ -1080,11 +1080,14 @@ static int nes_netdev_set_rx_csum(struct net_device *netdev, u32 enable)
1080 1080
1081 1081
1082/** 1082/**
1083 * nes_netdev_get_stats_count 1083 * nes_netdev_get_sset_count
1084 */ 1084 */
1085static int nes_netdev_get_stats_count(struct net_device *netdev) 1085static int nes_netdev_get_sset_count(struct net_device *netdev, int stringset)
1086{ 1086{
1087 return NES_ETHTOOL_STAT_COUNT; 1087 if (stringset == ETH_SS_STATS)
1088 return NES_ETHTOOL_STAT_COUNT;
1089 else
1090 return -EINVAL;
1088} 1091}
1089 1092
1090 1093
@@ -1264,7 +1267,6 @@ static void nes_netdev_get_drvinfo(struct net_device *netdev,
1264 sprintf(drvinfo->fw_version, "%u.%u", nesadapter->firmware_version>>16, 1267 sprintf(drvinfo->fw_version, "%u.%u", nesadapter->firmware_version>>16,
1265 nesadapter->firmware_version & 0x000000ff); 1268 nesadapter->firmware_version & 0x000000ff);
1266 strcpy(drvinfo->version, DRV_VERSION); 1269 strcpy(drvinfo->version, DRV_VERSION);
1267 drvinfo->n_stats = nes_netdev_get_stats_count(netdev);
1268 drvinfo->testinfo_len = 0; 1270 drvinfo->testinfo_len = 0;
1269 drvinfo->eedump_len = 0; 1271 drvinfo->eedump_len = 0;
1270 drvinfo->regdump_len = 0; 1272 drvinfo->regdump_len = 0;
@@ -1516,7 +1518,7 @@ static const struct ethtool_ops nes_ethtool_ops = {
1516 .get_rx_csum = nes_netdev_get_rx_csum, 1518 .get_rx_csum = nes_netdev_get_rx_csum,
1517 .get_sg = ethtool_op_get_sg, 1519 .get_sg = ethtool_op_get_sg,
1518 .get_strings = nes_netdev_get_strings, 1520 .get_strings = nes_netdev_get_strings,
1519 .get_stats_count = nes_netdev_get_stats_count, 1521 .get_sset_count = nes_netdev_get_sset_count,
1520 .get_ethtool_stats = nes_netdev_get_ethtool_stats, 1522 .get_ethtool_stats = nes_netdev_get_ethtool_stats,
1521 .get_drvinfo = nes_netdev_get_drvinfo, 1523 .get_drvinfo = nes_netdev_get_drvinfo,
1522 .get_coalesce = nes_netdev_get_coalesce, 1524 .get_coalesce = nes_netdev_get_coalesce,
diff --git a/drivers/net/benet/be_ethtool.c b/drivers/net/benet/be_ethtool.c
index 11445df3dbc0..851543a040cb 100644
--- a/drivers/net/benet/be_ethtool.c
+++ b/drivers/net/benet/be_ethtool.c
@@ -281,9 +281,14 @@ be_get_stat_strings(struct net_device *netdev, uint32_t stringset,
281 } 281 }
282} 282}
283 283
284static int be_get_stats_count(struct net_device *netdev) 284static int be_get_sset_count(struct net_device *netdev, int stringset)
285{ 285{
286 return ETHTOOL_STATS_NUM; 286 switch (stringset) {
287 case ETH_SS_STATS:
288 return ETHTOOL_STATS_NUM;
289 default:
290 return -EINVAL;
291 }
287} 292}
288 293
289static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd) 294static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
@@ -364,7 +369,7 @@ const struct ethtool_ops be_ethtool_ops = {
364 .get_tso = ethtool_op_get_tso, 369 .get_tso = ethtool_op_get_tso,
365 .set_tso = ethtool_op_set_tso, 370 .set_tso = ethtool_op_set_tso,
366 .get_strings = be_get_stat_strings, 371 .get_strings = be_get_stat_strings,
367 .get_stats_count = be_get_stats_count, 372 .get_sset_count = be_get_sset_count,
368 .get_ethtool_stats = be_get_ethtool_stats, 373 .get_ethtool_stats = be_get_ethtool_stats,
369 .flash_device = be_do_flash, 374 .flash_device = be_do_flash,
370}; 375};
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 20f0ed956df2..c0abfc4fb34b 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -9818,11 +9818,6 @@ static const struct {
9818 { "idle check (online)" } 9818 { "idle check (online)" }
9819}; 9819};
9820 9820
9821static int bnx2x_self_test_count(struct net_device *dev)
9822{
9823 return BNX2X_NUM_TESTS;
9824}
9825
9826static int bnx2x_test_registers(struct bnx2x *bp) 9821static int bnx2x_test_registers(struct bnx2x *bp)
9827{ 9822{
9828 int idx, i, rc = -ENODEV; 9823 int idx, i, rc = -ENODEV;
@@ -10436,6 +10431,36 @@ static const struct {
10436#define IS_E1HMF_MODE_STAT(bp) \ 10431#define IS_E1HMF_MODE_STAT(bp) \
10437 (IS_E1HMF(bp) && !(bp->msglevel & BNX2X_MSG_STATS)) 10432 (IS_E1HMF(bp) && !(bp->msglevel & BNX2X_MSG_STATS))
10438 10433
10434static int bnx2x_get_sset_count(struct net_device *dev, int stringset)
10435{
10436 struct bnx2x *bp = netdev_priv(dev);
10437 int i, num_stats;
10438
10439 switch(stringset) {
10440 case ETH_SS_STATS:
10441 if (is_multi(bp)) {
10442 num_stats = BNX2X_NUM_Q_STATS * bp->num_rx_queues;
10443 if (!IS_E1HMF_MODE_STAT(bp))
10444 num_stats += BNX2X_NUM_STATS;
10445 } else {
10446 if (IS_E1HMF_MODE_STAT(bp)) {
10447 num_stats = 0;
10448 for (i = 0; i < BNX2X_NUM_STATS; i++)
10449 if (IS_FUNC_STAT(i))
10450 num_stats++;
10451 } else
10452 num_stats = BNX2X_NUM_STATS;
10453 }
10454 return num_stats;
10455
10456 case ETH_SS_TEST:
10457 return BNX2X_NUM_TESTS;
10458
10459 default:
10460 return -EINVAL;
10461 }
10462}
10463
10439static void bnx2x_get_strings(struct net_device *dev, u32 stringset, u8 *buf) 10464static void bnx2x_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
10440{ 10465{
10441 struct bnx2x *bp = netdev_priv(dev); 10466 struct bnx2x *bp = netdev_priv(dev);
@@ -10473,28 +10498,6 @@ static void bnx2x_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
10473 } 10498 }
10474} 10499}
10475 10500
10476static int bnx2x_get_stats_count(struct net_device *dev)
10477{
10478 struct bnx2x *bp = netdev_priv(dev);
10479 int i, num_stats;
10480
10481 if (is_multi(bp)) {
10482 num_stats = BNX2X_NUM_Q_STATS * bp->num_rx_queues;
10483 if (!IS_E1HMF_MODE_STAT(bp))
10484 num_stats += BNX2X_NUM_STATS;
10485 } else {
10486 if (IS_E1HMF_MODE_STAT(bp)) {
10487 num_stats = 0;
10488 for (i = 0; i < BNX2X_NUM_STATS; i++)
10489 if (IS_FUNC_STAT(i))
10490 num_stats++;
10491 } else
10492 num_stats = BNX2X_NUM_STATS;
10493 }
10494
10495 return num_stats;
10496}
10497
10498static void bnx2x_get_ethtool_stats(struct net_device *dev, 10501static void bnx2x_get_ethtool_stats(struct net_device *dev,
10499 struct ethtool_stats *stats, u64 *buf) 10502 struct ethtool_stats *stats, u64 *buf)
10500{ 10503{
@@ -10637,11 +10640,10 @@ static const struct ethtool_ops bnx2x_ethtool_ops = {
10637 .set_sg = ethtool_op_set_sg, 10640 .set_sg = ethtool_op_set_sg,
10638 .get_tso = ethtool_op_get_tso, 10641 .get_tso = ethtool_op_get_tso,
10639 .set_tso = bnx2x_set_tso, 10642 .set_tso = bnx2x_set_tso,
10640 .self_test_count = bnx2x_self_test_count,
10641 .self_test = bnx2x_self_test, 10643 .self_test = bnx2x_self_test,
10644 .get_sset_count = bnx2x_get_sset_count,
10642 .get_strings = bnx2x_get_strings, 10645 .get_strings = bnx2x_get_strings,
10643 .phys_id = bnx2x_phys_id, 10646 .phys_id = bnx2x_phys_id,
10644 .get_stats_count = bnx2x_get_stats_count,
10645 .get_ethtool_stats = bnx2x_get_ethtool_stats, 10647 .get_ethtool_stats = bnx2x_get_ethtool_stats,
10646}; 10648};
10647 10649
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index 89c82c5e63e4..0fa21a936d13 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -2145,9 +2145,12 @@ static int emac_ethtool_nway_reset(struct net_device *ndev)
2145 return res; 2145 return res;
2146} 2146}
2147 2147
2148static int emac_ethtool_get_stats_count(struct net_device *ndev) 2148static int emac_ethtool_get_sset_count(struct net_device *ndev, int stringset)
2149{ 2149{
2150 return EMAC_ETHTOOL_STATS_COUNT; 2150 if (stringset == ETH_SS_STATS)
2151 return EMAC_ETHTOOL_STATS_COUNT;
2152 else
2153 return -EINVAL;
2151} 2154}
2152 2155
2153static void emac_ethtool_get_strings(struct net_device *ndev, u32 stringset, 2156static void emac_ethtool_get_strings(struct net_device *ndev, u32 stringset,
@@ -2178,7 +2181,6 @@ static void emac_ethtool_get_drvinfo(struct net_device *ndev,
2178 info->fw_version[0] = '\0'; 2181 info->fw_version[0] = '\0';
2179 sprintf(info->bus_info, "PPC 4xx EMAC-%d %s", 2182 sprintf(info->bus_info, "PPC 4xx EMAC-%d %s",
2180 dev->cell_index, dev->ofdev->node->full_name); 2183 dev->cell_index, dev->ofdev->node->full_name);
2181 info->n_stats = emac_ethtool_get_stats_count(ndev);
2182 info->regdump_len = emac_ethtool_get_regs_len(ndev); 2184 info->regdump_len = emac_ethtool_get_regs_len(ndev);
2183} 2185}
2184 2186
@@ -2198,7 +2200,7 @@ static const struct ethtool_ops emac_ethtool_ops = {
2198 .get_rx_csum = emac_ethtool_get_rx_csum, 2200 .get_rx_csum = emac_ethtool_get_rx_csum,
2199 2201
2200 .get_strings = emac_ethtool_get_strings, 2202 .get_strings = emac_ethtool_get_strings,
2201 .get_stats_count = emac_ethtool_get_stats_count, 2203 .get_sset_count = emac_ethtool_get_sset_count,
2202 .get_ethtool_stats = emac_ethtool_get_ethtool_stats, 2204 .get_ethtool_stats = emac_ethtool_get_ethtool_stats,
2203 2205
2204 .get_link = ethtool_op_get_link, 2206 .get_link = ethtool_op_get_link,
diff --git a/drivers/net/igbvf/ethtool.c b/drivers/net/igbvf/ethtool.c
index ee17a097d1ca..bc606f8b61aa 100644
--- a/drivers/net/igbvf/ethtool.c
+++ b/drivers/net/igbvf/ethtool.c
@@ -363,16 +363,6 @@ static int igbvf_link_test(struct igbvf_adapter *adapter, u64 *data)
363 return *data; 363 return *data;
364} 364}
365 365
366static int igbvf_get_self_test_count(struct net_device *netdev)
367{
368 return IGBVF_TEST_LEN;
369}
370
371static int igbvf_get_stats_count(struct net_device *netdev)
372{
373 return IGBVF_GLOBAL_STATS_LEN;
374}
375
376static void igbvf_diag_test(struct net_device *netdev, 366static void igbvf_diag_test(struct net_device *netdev,
377 struct ethtool_test *eth_test, u64 *data) 367 struct ethtool_test *eth_test, u64 *data)
378{ 368{
@@ -480,6 +470,18 @@ static void igbvf_get_ethtool_stats(struct net_device *netdev,
480 470
481} 471}
482 472
473static int igbvf_get_sset_count(struct net_device *dev, int stringset)
474{
475 switch(stringset) {
476 case ETH_SS_TEST:
477 return IGBVF_TEST_LEN;
478 case ETH_SS_STATS:
479 return IGBVF_GLOBAL_STATS_LEN;
480 default:
481 return -EINVAL;
482 }
483}
484
483static void igbvf_get_strings(struct net_device *netdev, u32 stringset, 485static void igbvf_get_strings(struct net_device *netdev, u32 stringset,
484 u8 *data) 486 u8 *data)
485{ 487{
@@ -528,11 +530,10 @@ static const struct ethtool_ops igbvf_ethtool_ops = {
528 .get_tso = ethtool_op_get_tso, 530 .get_tso = ethtool_op_get_tso,
529 .set_tso = igbvf_set_tso, 531 .set_tso = igbvf_set_tso,
530 .self_test = igbvf_diag_test, 532 .self_test = igbvf_diag_test,
533 .get_sset_count = igbvf_get_sset_count,
531 .get_strings = igbvf_get_strings, 534 .get_strings = igbvf_get_strings,
532 .phys_id = igbvf_phys_id, 535 .phys_id = igbvf_phys_id,
533 .get_ethtool_stats = igbvf_get_ethtool_stats, 536 .get_ethtool_stats = igbvf_get_ethtool_stats,
534 .self_test_count = igbvf_get_self_test_count,
535 .get_stats_count = igbvf_get_stats_count,
536 .get_coalesce = igbvf_get_coalesce, 537 .get_coalesce = igbvf_get_coalesce,
537 .set_coalesce = igbvf_set_coalesce, 538 .set_coalesce = igbvf_set_coalesce,
538}; 539};
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index f9364d0678f2..1d1e657991d2 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -7855,10 +7855,13 @@ static void niu_get_strings(struct net_device *dev, u32 stringset, u8 *data)
7855 } 7855 }
7856} 7856}
7857 7857
7858static int niu_get_stats_count(struct net_device *dev) 7858static int niu_get_sset_count(struct net_device *dev, int stringset)
7859{ 7859{
7860 struct niu *np = netdev_priv(dev); 7860 struct niu *np = netdev_priv(dev);
7861 7861
7862 if (stringset != ETH_SS_STATS)
7863 return -EINVAL;
7864
7862 return ((np->flags & NIU_FLAGS_XMAC ? 7865 return ((np->flags & NIU_FLAGS_XMAC ?
7863 NUM_XMAC_STAT_KEYS : 7866 NUM_XMAC_STAT_KEYS :
7864 NUM_BMAC_STAT_KEYS) + 7867 NUM_BMAC_STAT_KEYS) +
@@ -7978,7 +7981,7 @@ static const struct ethtool_ops niu_ethtool_ops = {
7978 .get_settings = niu_get_settings, 7981 .get_settings = niu_get_settings,
7979 .set_settings = niu_set_settings, 7982 .set_settings = niu_set_settings,
7980 .get_strings = niu_get_strings, 7983 .get_strings = niu_get_strings,
7981 .get_stats_count = niu_get_stats_count, 7984 .get_sset_count = niu_get_sset_count,
7982 .get_ethtool_stats = niu_get_ethtool_stats, 7985 .get_ethtool_stats = niu_get_ethtool_stats,
7983 .phys_id = niu_phys_id, 7986 .phys_id = niu_phys_id,
7984 .get_rxnfc = niu_get_nfc, 7987 .get_rxnfc = niu_get_nfc,