diff options
author | stephen hemminger <stephen@networkplumber.org> | 2017-01-06 22:12:52 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-01-08 17:51:44 -0500 |
commit | bc1f44709cf27fb2a5766cadafe7e2ad5e9cb221 (patch) | |
tree | 10f4199c962083956bb3f2928e144b20be23ffe7 | |
parent | 63c64de7be1f762b8c6c224f2994cf5769b542ae (diff) |
net: make ndo_get_stats64 a void function
The network device operation for reading statistics is only called
in one place, and it ignores the return value. Having a structure
return value is potentially confusing because some future driver could
incorrectly assume that the return value was used.
Fix all drivers with ndo_get_stats64 to have a void function.
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
82 files changed, 166 insertions, 309 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 8029dd4912b6..36919221b3f0 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -211,8 +211,8 @@ static int lacp_fast; | |||
211 | 211 | ||
212 | static int bond_init(struct net_device *bond_dev); | 212 | static int bond_init(struct net_device *bond_dev); |
213 | static void bond_uninit(struct net_device *bond_dev); | 213 | static void bond_uninit(struct net_device *bond_dev); |
214 | static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev, | 214 | static void bond_get_stats(struct net_device *bond_dev, |
215 | struct rtnl_link_stats64 *stats); | 215 | struct rtnl_link_stats64 *stats); |
216 | static void bond_slave_arr_handler(struct work_struct *work); | 216 | static void bond_slave_arr_handler(struct work_struct *work); |
217 | static bool bond_time_in_interval(struct bonding *bond, unsigned long last_act, | 217 | static bool bond_time_in_interval(struct bonding *bond, unsigned long last_act, |
218 | int mod); | 218 | int mod); |
@@ -3337,8 +3337,8 @@ static void bond_fold_stats(struct rtnl_link_stats64 *_res, | |||
3337 | } | 3337 | } |
3338 | } | 3338 | } |
3339 | 3339 | ||
3340 | static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev, | 3340 | static void bond_get_stats(struct net_device *bond_dev, |
3341 | struct rtnl_link_stats64 *stats) | 3341 | struct rtnl_link_stats64 *stats) |
3342 | { | 3342 | { |
3343 | struct bonding *bond = netdev_priv(bond_dev); | 3343 | struct bonding *bond = netdev_priv(bond_dev); |
3344 | struct rtnl_link_stats64 temp; | 3344 | struct rtnl_link_stats64 temp; |
@@ -3362,8 +3362,6 @@ static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev, | |||
3362 | 3362 | ||
3363 | memcpy(&bond->bond_stats, stats, sizeof(*stats)); | 3363 | memcpy(&bond->bond_stats, stats, sizeof(*stats)); |
3364 | spin_unlock(&bond->stats_lock); | 3364 | spin_unlock(&bond->stats_lock); |
3365 | |||
3366 | return stats; | ||
3367 | } | 3365 | } |
3368 | 3366 | ||
3369 | static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd) | 3367 | static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd) |
diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c index 6421835f11b7..1f2de4e8207c 100644 --- a/drivers/net/dummy.c +++ b/drivers/net/dummy.c | |||
@@ -54,8 +54,8 @@ struct pcpu_dstats { | |||
54 | struct u64_stats_sync syncp; | 54 | struct u64_stats_sync syncp; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | static struct rtnl_link_stats64 *dummy_get_stats64(struct net_device *dev, | 57 | static void dummy_get_stats64(struct net_device *dev, |
58 | struct rtnl_link_stats64 *stats) | 58 | struct rtnl_link_stats64 *stats) |
59 | { | 59 | { |
60 | int i; | 60 | int i; |
61 | 61 | ||
@@ -73,7 +73,6 @@ static struct rtnl_link_stats64 *dummy_get_stats64(struct net_device *dev, | |||
73 | stats->tx_bytes += tbytes; | 73 | stats->tx_bytes += tbytes; |
74 | stats->tx_packets += tpackets; | 74 | stats->tx_packets += tpackets; |
75 | } | 75 | } |
76 | return stats; | ||
77 | } | 76 | } |
78 | 77 | ||
79 | static netdev_tx_t dummy_xmit(struct sk_buff *skb, struct net_device *dev) | 78 | static netdev_tx_t dummy_xmit(struct sk_buff *skb, struct net_device *dev) |
diff --git a/drivers/net/ethernet/alacritech/slicoss.c b/drivers/net/ethernet/alacritech/slicoss.c index b21d8aa8d653..15a8096c60df 100644 --- a/drivers/net/ethernet/alacritech/slicoss.c +++ b/drivers/net/ethernet/alacritech/slicoss.c | |||
@@ -1471,8 +1471,8 @@ drop_skb: | |||
1471 | return NETDEV_TX_OK; | 1471 | return NETDEV_TX_OK; |
1472 | } | 1472 | } |
1473 | 1473 | ||
1474 | static struct rtnl_link_stats64 *slic_get_stats(struct net_device *dev, | 1474 | static void slic_get_stats(struct net_device *dev, |
1475 | struct rtnl_link_stats64 *lst) | 1475 | struct rtnl_link_stats64 *lst) |
1476 | { | 1476 | { |
1477 | struct slic_device *sdev = netdev_priv(dev); | 1477 | struct slic_device *sdev = netdev_priv(dev); |
1478 | struct slic_stats *stats = &sdev->stats; | 1478 | struct slic_stats *stats = &sdev->stats; |
@@ -1489,8 +1489,6 @@ static struct rtnl_link_stats64 *slic_get_stats(struct net_device *dev, | |||
1489 | SLIC_GET_STATS_COUNTER(lst->rx_crc_errors, stats, rx_crc); | 1489 | SLIC_GET_STATS_COUNTER(lst->rx_crc_errors, stats, rx_crc); |
1490 | SLIC_GET_STATS_COUNTER(lst->rx_fifo_errors, stats, rx_oflow802); | 1490 | SLIC_GET_STATS_COUNTER(lst->rx_fifo_errors, stats, rx_oflow802); |
1491 | SLIC_GET_STATS_COUNTER(lst->tx_carrier_errors, stats, tx_carrier); | 1491 | SLIC_GET_STATS_COUNTER(lst->tx_carrier_errors, stats, tx_carrier); |
1492 | |||
1493 | return lst; | ||
1494 | } | 1492 | } |
1495 | 1493 | ||
1496 | static int slic_get_sset_count(struct net_device *dev, int sset) | 1494 | static int slic_get_sset_count(struct net_device *dev, int sset) |
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c index cc8b13ebfa75..aca95b397393 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c | |||
@@ -2165,19 +2165,19 @@ err: | |||
2165 | ena_com_delete_debug_area(adapter->ena_dev); | 2165 | ena_com_delete_debug_area(adapter->ena_dev); |
2166 | } | 2166 | } |
2167 | 2167 | ||
2168 | static struct rtnl_link_stats64 *ena_get_stats64(struct net_device *netdev, | 2168 | static void ena_get_stats64(struct net_device *netdev, |
2169 | struct rtnl_link_stats64 *stats) | 2169 | struct rtnl_link_stats64 *stats) |
2170 | { | 2170 | { |
2171 | struct ena_adapter *adapter = netdev_priv(netdev); | 2171 | struct ena_adapter *adapter = netdev_priv(netdev); |
2172 | struct ena_admin_basic_stats ena_stats; | 2172 | struct ena_admin_basic_stats ena_stats; |
2173 | int rc; | 2173 | int rc; |
2174 | 2174 | ||
2175 | if (!test_bit(ENA_FLAG_DEV_UP, &adapter->flags)) | 2175 | if (!test_bit(ENA_FLAG_DEV_UP, &adapter->flags)) |
2176 | return NULL; | 2176 | return; |
2177 | 2177 | ||
2178 | rc = ena_com_get_dev_basic_stats(adapter->ena_dev, &ena_stats); | 2178 | rc = ena_com_get_dev_basic_stats(adapter->ena_dev, &ena_stats); |
2179 | if (rc) | 2179 | if (rc) |
2180 | return NULL; | 2180 | return; |
2181 | 2181 | ||
2182 | stats->tx_bytes = ((u64)ena_stats.tx_bytes_high << 32) | | 2182 | stats->tx_bytes = ((u64)ena_stats.tx_bytes_high << 32) | |
2183 | ena_stats.tx_bytes_low; | 2183 | ena_stats.tx_bytes_low; |
@@ -2204,8 +2204,6 @@ static struct rtnl_link_stats64 *ena_get_stats64(struct net_device *netdev, | |||
2204 | 2204 | ||
2205 | stats->rx_errors = 0; | 2205 | stats->rx_errors = 0; |
2206 | stats->tx_errors = 0; | 2206 | stats->tx_errors = 0; |
2207 | |||
2208 | return stats; | ||
2209 | } | 2207 | } |
2210 | 2208 | ||
2211 | static const struct net_device_ops ena_netdev_ops = { | 2209 | static const struct net_device_ops ena_netdev_ops = { |
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index 155190db682d..130de11fa553 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c | |||
@@ -1759,8 +1759,8 @@ static void xgbe_tx_timeout(struct net_device *netdev) | |||
1759 | schedule_work(&pdata->restart_work); | 1759 | schedule_work(&pdata->restart_work); |
1760 | } | 1760 | } |
1761 | 1761 | ||
1762 | static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev, | 1762 | static void xgbe_get_stats64(struct net_device *netdev, |
1763 | struct rtnl_link_stats64 *s) | 1763 | struct rtnl_link_stats64 *s) |
1764 | { | 1764 | { |
1765 | struct xgbe_prv_data *pdata = netdev_priv(netdev); | 1765 | struct xgbe_prv_data *pdata = netdev_priv(netdev); |
1766 | struct xgbe_mmc_stats *pstats = &pdata->mmc_stats; | 1766 | struct xgbe_mmc_stats *pstats = &pdata->mmc_stats; |
@@ -1786,8 +1786,6 @@ static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev, | |||
1786 | s->tx_dropped = netdev->stats.tx_dropped; | 1786 | s->tx_dropped = netdev->stats.tx_dropped; |
1787 | 1787 | ||
1788 | DBGPR("<--%s\n", __func__); | 1788 | DBGPR("<--%s\n", __func__); |
1789 | |||
1790 | return s; | ||
1791 | } | 1789 | } |
1792 | 1790 | ||
1793 | static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto, | 1791 | static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto, |
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c index 523b8eff6d7b..45f2204e6695 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c | |||
@@ -1453,7 +1453,7 @@ err: | |||
1453 | return ret; | 1453 | return ret; |
1454 | } | 1454 | } |
1455 | 1455 | ||
1456 | static struct rtnl_link_stats64 *xgene_enet_get_stats64( | 1456 | static void xgene_enet_get_stats64( |
1457 | struct net_device *ndev, | 1457 | struct net_device *ndev, |
1458 | struct rtnl_link_stats64 *storage) | 1458 | struct rtnl_link_stats64 *storage) |
1459 | { | 1459 | { |
@@ -1484,8 +1484,6 @@ static struct rtnl_link_stats64 *xgene_enet_get_stats64( | |||
1484 | } | 1484 | } |
1485 | } | 1485 | } |
1486 | memcpy(storage, stats, sizeof(struct rtnl_link_stats64)); | 1486 | memcpy(storage, stats, sizeof(struct rtnl_link_stats64)); |
1487 | |||
1488 | return storage; | ||
1489 | } | 1487 | } |
1490 | 1488 | ||
1491 | static int xgene_enet_set_mac_address(struct net_device *ndev, void *addr) | 1489 | static int xgene_enet_set_mac_address(struct net_device *ndev, void *addr) |
diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c index c8f525574d68..c66195d00ed4 100644 --- a/drivers/net/ethernet/atheros/alx/main.c +++ b/drivers/net/ethernet/atheros/alx/main.c | |||
@@ -1643,8 +1643,8 @@ static void alx_poll_controller(struct net_device *netdev) | |||
1643 | } | 1643 | } |
1644 | #endif | 1644 | #endif |
1645 | 1645 | ||
1646 | static struct rtnl_link_stats64 *alx_get_stats64(struct net_device *dev, | 1646 | static void alx_get_stats64(struct net_device *dev, |
1647 | struct rtnl_link_stats64 *net_stats) | 1647 | struct rtnl_link_stats64 *net_stats) |
1648 | { | 1648 | { |
1649 | struct alx_priv *alx = netdev_priv(dev); | 1649 | struct alx_priv *alx = netdev_priv(dev); |
1650 | struct alx_hw_stats *hw_stats = &alx->hw.stats; | 1650 | struct alx_hw_stats *hw_stats = &alx->hw.stats; |
@@ -1688,8 +1688,6 @@ static struct rtnl_link_stats64 *alx_get_stats64(struct net_device *dev, | |||
1688 | net_stats->rx_packets = hw_stats->rx_ok + net_stats->rx_errors; | 1688 | net_stats->rx_packets = hw_stats->rx_ok + net_stats->rx_errors; |
1689 | 1689 | ||
1690 | spin_unlock(&alx->stats_lock); | 1690 | spin_unlock(&alx->stats_lock); |
1691 | |||
1692 | return net_stats; | ||
1693 | } | 1691 | } |
1694 | 1692 | ||
1695 | static const struct net_device_ops alx_netdev_ops = { | 1693 | static const struct net_device_ops alx_netdev_ops = { |
diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c index 48707ed76ffc..7aef70f7d8ef 100644 --- a/drivers/net/ethernet/broadcom/b44.c +++ b/drivers/net/ethernet/broadcom/b44.c | |||
@@ -1674,8 +1674,8 @@ static int b44_close(struct net_device *dev) | |||
1674 | return 0; | 1674 | return 0; |
1675 | } | 1675 | } |
1676 | 1676 | ||
1677 | static struct rtnl_link_stats64 *b44_get_stats64(struct net_device *dev, | 1677 | static void b44_get_stats64(struct net_device *dev, |
1678 | struct rtnl_link_stats64 *nstat) | 1678 | struct rtnl_link_stats64 *nstat) |
1679 | { | 1679 | { |
1680 | struct b44 *bp = netdev_priv(dev); | 1680 | struct b44 *bp = netdev_priv(dev); |
1681 | struct b44_hw_stats *hwstat = &bp->hw_stats; | 1681 | struct b44_hw_stats *hwstat = &bp->hw_stats; |
@@ -1718,7 +1718,6 @@ static struct rtnl_link_stats64 *b44_get_stats64(struct net_device *dev, | |||
1718 | #endif | 1718 | #endif |
1719 | } while (u64_stats_fetch_retry_irq(&hwstat->syncp, start)); | 1719 | } while (u64_stats_fetch_retry_irq(&hwstat->syncp, start)); |
1720 | 1720 | ||
1721 | return nstat; | ||
1722 | } | 1721 | } |
1723 | 1722 | ||
1724 | static int __b44_load_mcast(struct b44 *bp, struct net_device *dev) | 1723 | static int __b44_load_mcast(struct b44 *bp, struct net_device *dev) |
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c index d5d1026be4b7..de1d07c08495 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c | |||
@@ -6821,13 +6821,13 @@ bnx2_save_stats(struct bnx2 *bp) | |||
6821 | (unsigned long) (bp->stats_blk->ctr + \ | 6821 | (unsigned long) (bp->stats_blk->ctr + \ |
6822 | bp->temp_stats_blk->ctr) | 6822 | bp->temp_stats_blk->ctr) |
6823 | 6823 | ||
6824 | static struct rtnl_link_stats64 * | 6824 | static void |
6825 | bnx2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats) | 6825 | bnx2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats) |
6826 | { | 6826 | { |
6827 | struct bnx2 *bp = netdev_priv(dev); | 6827 | struct bnx2 *bp = netdev_priv(dev); |
6828 | 6828 | ||
6829 | if (bp->stats_blk == NULL) | 6829 | if (bp->stats_blk == NULL) |
6830 | return net_stats; | 6830 | return; |
6831 | 6831 | ||
6832 | net_stats->rx_packets = | 6832 | net_stats->rx_packets = |
6833 | GET_64BIT_NET_STATS(stat_IfHCInUcastPkts) + | 6833 | GET_64BIT_NET_STATS(stat_IfHCInUcastPkts) + |
@@ -6891,7 +6891,6 @@ bnx2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats) | |||
6891 | GET_32BIT_NET_STATS(stat_IfInMBUFDiscards) + | 6891 | GET_32BIT_NET_STATS(stat_IfInMBUFDiscards) + |
6892 | GET_32BIT_NET_STATS(stat_FwRxDrop); | 6892 | GET_32BIT_NET_STATS(stat_FwRxDrop); |
6893 | 6893 | ||
6894 | return net_stats; | ||
6895 | } | 6894 | } |
6896 | 6895 | ||
6897 | /* All ethtool functions called with rtnl_lock */ | 6896 | /* All ethtool functions called with rtnl_lock */ |
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 98e948489700..e5f458396e1a 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c | |||
@@ -5879,7 +5879,7 @@ static int bnxt_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) | |||
5879 | return -EOPNOTSUPP; | 5879 | return -EOPNOTSUPP; |
5880 | } | 5880 | } |
5881 | 5881 | ||
5882 | static struct rtnl_link_stats64 * | 5882 | static void |
5883 | bnxt_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 5883 | bnxt_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
5884 | { | 5884 | { |
5885 | u32 i; | 5885 | u32 i; |
@@ -5888,7 +5888,7 @@ bnxt_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
5888 | memset(stats, 0, sizeof(struct rtnl_link_stats64)); | 5888 | memset(stats, 0, sizeof(struct rtnl_link_stats64)); |
5889 | 5889 | ||
5890 | if (!bp->bnapi) | 5890 | if (!bp->bnapi) |
5891 | return stats; | 5891 | return; |
5892 | 5892 | ||
5893 | /* TODO check if we need to synchronize with bnxt_close path */ | 5893 | /* TODO check if we need to synchronize with bnxt_close path */ |
5894 | for (i = 0; i < bp->cp_nr_rings; i++) { | 5894 | for (i = 0; i < bp->cp_nr_rings; i++) { |
@@ -5935,8 +5935,6 @@ bnxt_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
5935 | stats->tx_fifo_errors = le64_to_cpu(tx->tx_fifo_underruns); | 5935 | stats->tx_fifo_errors = le64_to_cpu(tx->tx_fifo_underruns); |
5936 | stats->tx_errors = le64_to_cpu(tx->tx_err); | 5936 | stats->tx_errors = le64_to_cpu(tx->tx_err); |
5937 | } | 5937 | } |
5938 | |||
5939 | return stats; | ||
5940 | } | 5938 | } |
5941 | 5939 | ||
5942 | static bool bnxt_mc_list_updated(struct bnxt *bp, u32 *rx_mask) | 5940 | static bool bnxt_mc_list_updated(struct bnxt *bp, u32 *rx_mask) |
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 185e9e047aa9..800328f562fa 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c | |||
@@ -14142,8 +14142,8 @@ static const struct ethtool_ops tg3_ethtool_ops = { | |||
14142 | .set_link_ksettings = tg3_set_link_ksettings, | 14142 | .set_link_ksettings = tg3_set_link_ksettings, |
14143 | }; | 14143 | }; |
14144 | 14144 | ||
14145 | static struct rtnl_link_stats64 *tg3_get_stats64(struct net_device *dev, | 14145 | static void tg3_get_stats64(struct net_device *dev, |
14146 | struct rtnl_link_stats64 *stats) | 14146 | struct rtnl_link_stats64 *stats) |
14147 | { | 14147 | { |
14148 | struct tg3 *tp = netdev_priv(dev); | 14148 | struct tg3 *tp = netdev_priv(dev); |
14149 | 14149 | ||
@@ -14151,13 +14151,11 @@ static struct rtnl_link_stats64 *tg3_get_stats64(struct net_device *dev, | |||
14151 | if (!tp->hw_stats) { | 14151 | if (!tp->hw_stats) { |
14152 | *stats = tp->net_stats_prev; | 14152 | *stats = tp->net_stats_prev; |
14153 | spin_unlock_bh(&tp->lock); | 14153 | spin_unlock_bh(&tp->lock); |
14154 | return stats; | 14154 | return; |
14155 | } | 14155 | } |
14156 | 14156 | ||
14157 | tg3_get_nstats(tp, stats); | 14157 | tg3_get_nstats(tp, stats); |
14158 | spin_unlock_bh(&tp->lock); | 14158 | spin_unlock_bh(&tp->lock); |
14159 | |||
14160 | return stats; | ||
14161 | } | 14159 | } |
14162 | 14160 | ||
14163 | static void tg3_set_rx_mode(struct net_device *dev) | 14161 | static void tg3_set_rx_mode(struct net_device *dev) |
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c index 112030828c4b..73a94113db1f 100644 --- a/drivers/net/ethernet/brocade/bna/bnad.c +++ b/drivers/net/ethernet/brocade/bna/bnad.c | |||
@@ -3111,7 +3111,7 @@ bnad_start_xmit(struct sk_buff *skb, struct net_device *netdev) | |||
3111 | * Used spin_lock to synchronize reading of stats structures, which | 3111 | * Used spin_lock to synchronize reading of stats structures, which |
3112 | * is written by BNA under the same lock. | 3112 | * is written by BNA under the same lock. |
3113 | */ | 3113 | */ |
3114 | static struct rtnl_link_stats64 * | 3114 | static void |
3115 | bnad_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats) | 3115 | bnad_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats) |
3116 | { | 3116 | { |
3117 | struct bnad *bnad = netdev_priv(netdev); | 3117 | struct bnad *bnad = netdev_priv(netdev); |
@@ -3123,8 +3123,6 @@ bnad_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats) | |||
3123 | bnad_netdev_hwstats_fill(bnad, stats); | 3123 | bnad_netdev_hwstats_fill(bnad, stats); |
3124 | 3124 | ||
3125 | spin_unlock_irqrestore(&bnad->bna_lock, flags); | 3125 | spin_unlock_irqrestore(&bnad->bna_lock, flags); |
3126 | |||
3127 | return stats; | ||
3128 | } | 3126 | } |
3129 | 3127 | ||
3130 | static void | 3128 | static void |
@@ -3427,7 +3425,7 @@ static const struct net_device_ops bnad_netdev_ops = { | |||
3427 | .ndo_open = bnad_open, | 3425 | .ndo_open = bnad_open, |
3428 | .ndo_stop = bnad_stop, | 3426 | .ndo_stop = bnad_stop, |
3429 | .ndo_start_xmit = bnad_start_xmit, | 3427 | .ndo_start_xmit = bnad_start_xmit, |
3430 | .ndo_get_stats64 = bnad_get_stats64, | 3428 | .ndo_get_stats64 = bnad_get_stats64, |
3431 | .ndo_set_rx_mode = bnad_set_rx_mode, | 3429 | .ndo_set_rx_mode = bnad_set_rx_mode, |
3432 | .ndo_validate_addr = eth_validate_addr, | 3430 | .ndo_validate_addr = eth_validate_addr, |
3433 | .ndo_set_mac_address = bnad_set_mac_address, | 3431 | .ndo_set_mac_address = bnad_set_mac_address, |
diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c index ce7de6f72512..b0540658afad 100644 --- a/drivers/net/ethernet/calxeda/xgmac.c +++ b/drivers/net/ethernet/calxeda/xgmac.c | |||
@@ -1446,9 +1446,9 @@ static void xgmac_poll_controller(struct net_device *dev) | |||
1446 | } | 1446 | } |
1447 | #endif | 1447 | #endif |
1448 | 1448 | ||
1449 | static struct rtnl_link_stats64 * | 1449 | static void |
1450 | xgmac_get_stats64(struct net_device *dev, | 1450 | xgmac_get_stats64(struct net_device *dev, |
1451 | struct rtnl_link_stats64 *storage) | 1451 | struct rtnl_link_stats64 *storage) |
1452 | { | 1452 | { |
1453 | struct xgmac_priv *priv = netdev_priv(dev); | 1453 | struct xgmac_priv *priv = netdev_priv(dev); |
1454 | void __iomem *base = priv->base; | 1454 | void __iomem *base = priv->base; |
@@ -1476,7 +1476,6 @@ xgmac_get_stats64(struct net_device *dev, | |||
1476 | 1476 | ||
1477 | writel(0, base + XGMAC_MMC_CTRL); | 1477 | writel(0, base + XGMAC_MMC_CTRL); |
1478 | spin_unlock_bh(&priv->stats_lock); | 1478 | spin_unlock_bh(&priv->stats_lock); |
1479 | return storage; | ||
1480 | } | 1479 | } |
1481 | 1480 | ||
1482 | static int xgmac_set_mac_address(struct net_device *dev, void *p) | 1481 | static int xgmac_set_mac_address(struct net_device *dev, void *p) |
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_main.c b/drivers/net/ethernet/cavium/thunder/nicvf_main.c index 2006f58b14b1..273eafdb1c57 100644 --- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c +++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c | |||
@@ -1461,8 +1461,8 @@ void nicvf_update_stats(struct nicvf *nic) | |||
1461 | nicvf_update_sq_stats(nic, qidx); | 1461 | nicvf_update_sq_stats(nic, qidx); |
1462 | } | 1462 | } |
1463 | 1463 | ||
1464 | static struct rtnl_link_stats64 *nicvf_get_stats64(struct net_device *netdev, | 1464 | static void nicvf_get_stats64(struct net_device *netdev, |
1465 | struct rtnl_link_stats64 *stats) | 1465 | struct rtnl_link_stats64 *stats) |
1466 | { | 1466 | { |
1467 | struct nicvf *nic = netdev_priv(netdev); | 1467 | struct nicvf *nic = netdev_priv(netdev); |
1468 | struct nicvf_hw_stats *hw_stats = &nic->hw_stats; | 1468 | struct nicvf_hw_stats *hw_stats = &nic->hw_stats; |
@@ -1478,7 +1478,6 @@ static struct rtnl_link_stats64 *nicvf_get_stats64(struct net_device *netdev, | |||
1478 | stats->tx_packets = hw_stats->tx_frames; | 1478 | stats->tx_packets = hw_stats->tx_frames; |
1479 | stats->tx_dropped = hw_stats->tx_drops; | 1479 | stats->tx_dropped = hw_stats->tx_drops; |
1480 | 1480 | ||
1481 | return stats; | ||
1482 | } | 1481 | } |
1483 | 1482 | ||
1484 | static void nicvf_tx_timeout(struct net_device *dev) | 1483 | static void nicvf_tx_timeout(struct net_device *dev) |
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index 629b11879ceb..3349e1f376c3 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | |||
@@ -2375,8 +2375,8 @@ int cxgb4_remove_server_filter(const struct net_device *dev, unsigned int stid, | |||
2375 | } | 2375 | } |
2376 | EXPORT_SYMBOL(cxgb4_remove_server_filter); | 2376 | EXPORT_SYMBOL(cxgb4_remove_server_filter); |
2377 | 2377 | ||
2378 | static struct rtnl_link_stats64 *cxgb_get_stats(struct net_device *dev, | 2378 | static void cxgb_get_stats(struct net_device *dev, |
2379 | struct rtnl_link_stats64 *ns) | 2379 | struct rtnl_link_stats64 *ns) |
2380 | { | 2380 | { |
2381 | struct port_stats stats; | 2381 | struct port_stats stats; |
2382 | struct port_info *p = netdev_priv(dev); | 2382 | struct port_info *p = netdev_priv(dev); |
@@ -2389,7 +2389,7 @@ static struct rtnl_link_stats64 *cxgb_get_stats(struct net_device *dev, | |||
2389 | spin_lock(&adapter->stats_lock); | 2389 | spin_lock(&adapter->stats_lock); |
2390 | if (!netif_device_present(dev)) { | 2390 | if (!netif_device_present(dev)) { |
2391 | spin_unlock(&adapter->stats_lock); | 2391 | spin_unlock(&adapter->stats_lock); |
2392 | return ns; | 2392 | return; |
2393 | } | 2393 | } |
2394 | t4_get_port_stats_offset(adapter, p->tx_chan, &stats, | 2394 | t4_get_port_stats_offset(adapter, p->tx_chan, &stats, |
2395 | &p->stats_base); | 2395 | &p->stats_base); |
@@ -2423,7 +2423,6 @@ static struct rtnl_link_stats64 *cxgb_get_stats(struct net_device *dev, | |||
2423 | ns->tx_errors = stats.tx_error_frames; | 2423 | ns->tx_errors = stats.tx_error_frames; |
2424 | ns->rx_errors = stats.rx_symbol_err + stats.rx_fcs_err + | 2424 | ns->rx_errors = stats.rx_symbol_err + stats.rx_fcs_err + |
2425 | ns->rx_length_errors + stats.rx_len_err + ns->rx_fifo_errors; | 2425 | ns->rx_length_errors + stats.rx_len_err + ns->rx_fifo_errors; |
2426 | return ns; | ||
2427 | } | 2426 | } |
2428 | 2427 | ||
2429 | static int cxgb_ioctl(struct net_device *dev, struct ifreq *req, int cmd) | 2428 | static int cxgb_ioctl(struct net_device *dev, struct ifreq *req, int cmd) |
diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index cdd7a1a59aa7..c5842c525eed 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c | |||
@@ -680,8 +680,8 @@ static netdev_tx_t enic_hard_start_xmit(struct sk_buff *skb, | |||
680 | } | 680 | } |
681 | 681 | ||
682 | /* dev_base_lock rwlock held, nominally process context */ | 682 | /* dev_base_lock rwlock held, nominally process context */ |
683 | static struct rtnl_link_stats64 *enic_get_stats(struct net_device *netdev, | 683 | static void enic_get_stats(struct net_device *netdev, |
684 | struct rtnl_link_stats64 *net_stats) | 684 | struct rtnl_link_stats64 *net_stats) |
685 | { | 685 | { |
686 | struct enic *enic = netdev_priv(netdev); | 686 | struct enic *enic = netdev_priv(netdev); |
687 | struct vnic_stats *stats; | 687 | struct vnic_stats *stats; |
@@ -693,7 +693,7 @@ static struct rtnl_link_stats64 *enic_get_stats(struct net_device *netdev, | |||
693 | * recorded stats. | 693 | * recorded stats. |
694 | */ | 694 | */ |
695 | if (err == -ENOMEM) | 695 | if (err == -ENOMEM) |
696 | return net_stats; | 696 | return; |
697 | 697 | ||
698 | net_stats->tx_packets = stats->tx.tx_frames_ok; | 698 | net_stats->tx_packets = stats->tx.tx_frames_ok; |
699 | net_stats->tx_bytes = stats->tx.tx_bytes_ok; | 699 | net_stats->tx_bytes = stats->tx.tx_bytes_ok; |
@@ -707,8 +707,6 @@ static struct rtnl_link_stats64 *enic_get_stats(struct net_device *netdev, | |||
707 | net_stats->rx_over_errors = enic->rq_truncated_pkts; | 707 | net_stats->rx_over_errors = enic->rq_truncated_pkts; |
708 | net_stats->rx_crc_errors = enic->rq_bad_fcs; | 708 | net_stats->rx_crc_errors = enic->rq_bad_fcs; |
709 | net_stats->rx_dropped = stats->rx.rx_no_bufs + stats->rx.rx_drop; | 709 | net_stats->rx_dropped = stats->rx.rx_no_bufs + stats->rx.rx_drop; |
710 | |||
711 | return net_stats; | ||
712 | } | 710 | } |
713 | 711 | ||
714 | static int enic_mc_sync(struct net_device *netdev, const u8 *mc_addr) | 712 | static int enic_mc_sync(struct net_device *netdev, const u8 *mc_addr) |
diff --git a/drivers/net/ethernet/ec_bhf.c b/drivers/net/ethernet/ec_bhf.c index 7bf78a0d322c..278f139f2a22 100644 --- a/drivers/net/ethernet/ec_bhf.c +++ b/drivers/net/ethernet/ec_bhf.c | |||
@@ -457,7 +457,7 @@ static int ec_bhf_stop(struct net_device *net_dev) | |||
457 | return 0; | 457 | return 0; |
458 | } | 458 | } |
459 | 459 | ||
460 | static struct rtnl_link_stats64 * | 460 | static void |
461 | ec_bhf_get_stats(struct net_device *net_dev, | 461 | ec_bhf_get_stats(struct net_device *net_dev, |
462 | struct rtnl_link_stats64 *stats) | 462 | struct rtnl_link_stats64 *stats) |
463 | { | 463 | { |
@@ -472,8 +472,6 @@ ec_bhf_get_stats(struct net_device *net_dev, | |||
472 | 472 | ||
473 | stats->tx_bytes = priv->stat_tx_bytes; | 473 | stats->tx_bytes = priv->stat_tx_bytes; |
474 | stats->rx_bytes = priv->stat_rx_bytes; | 474 | stats->rx_bytes = priv->stat_rx_bytes; |
475 | |||
476 | return stats; | ||
477 | } | 475 | } |
478 | 476 | ||
479 | static const struct net_device_ops ec_bhf_netdev_ops = { | 477 | static const struct net_device_ops ec_bhf_netdev_ops = { |
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 225e9a4877d7..0a679d2eaeee 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
@@ -639,8 +639,8 @@ void be_parse_stats(struct be_adapter *adapter) | |||
639 | } | 639 | } |
640 | } | 640 | } |
641 | 641 | ||
642 | static struct rtnl_link_stats64 *be_get_stats64(struct net_device *netdev, | 642 | static void be_get_stats64(struct net_device *netdev, |
643 | struct rtnl_link_stats64 *stats) | 643 | struct rtnl_link_stats64 *stats) |
644 | { | 644 | { |
645 | struct be_adapter *adapter = netdev_priv(netdev); | 645 | struct be_adapter *adapter = netdev_priv(netdev); |
646 | struct be_drv_stats *drvs = &adapter->drv_stats; | 646 | struct be_drv_stats *drvs = &adapter->drv_stats; |
@@ -704,7 +704,6 @@ static struct rtnl_link_stats64 *be_get_stats64(struct net_device *netdev, | |||
704 | stats->rx_fifo_errors = drvs->rxpp_fifo_overflow_drop + | 704 | stats->rx_fifo_errors = drvs->rxpp_fifo_overflow_drop + |
705 | drvs->rx_input_fifo_overflow_drop + | 705 | drvs->rx_input_fifo_overflow_drop + |
706 | drvs->rx_drops_no_pbuf; | 706 | drvs->rx_drops_no_pbuf; |
707 | return stats; | ||
708 | } | 707 | } |
709 | 708 | ||
710 | void be_link_status_update(struct be_adapter *adapter, u8 link_status) | 709 | void be_link_status_update(struct be_adapter *adapter, u8 link_status) |
diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c index c9b7ad65e563..b7cbc26a0911 100644 --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | |||
@@ -313,8 +313,8 @@ static void dpaa_tx_timeout(struct net_device *net_dev) | |||
313 | /* Calculates the statistics for the given device by adding the statistics | 313 | /* Calculates the statistics for the given device by adding the statistics |
314 | * collected by each CPU. | 314 | * collected by each CPU. |
315 | */ | 315 | */ |
316 | static struct rtnl_link_stats64 *dpaa_get_stats64(struct net_device *net_dev, | 316 | static void dpaa_get_stats64(struct net_device *net_dev, |
317 | struct rtnl_link_stats64 *s) | 317 | struct rtnl_link_stats64 *s) |
318 | { | 318 | { |
319 | int numstats = sizeof(struct rtnl_link_stats64) / sizeof(u64); | 319 | int numstats = sizeof(struct rtnl_link_stats64) / sizeof(u64); |
320 | struct dpaa_priv *priv = netdev_priv(net_dev); | 320 | struct dpaa_priv *priv = netdev_priv(net_dev); |
@@ -332,8 +332,6 @@ static struct rtnl_link_stats64 *dpaa_get_stats64(struct net_device *net_dev, | |||
332 | for (j = 0; j < numstats; j++) | 332 | for (j = 0; j < numstats; j++) |
333 | netstats[j] += cpustats[j]; | 333 | netstats[j] += cpustats[j]; |
334 | } | 334 | } |
335 | |||
336 | return s; | ||
337 | } | 335 | } |
338 | 336 | ||
339 | static struct mac_device *dpaa_mac_dev_get(struct platform_device *pdev) | 337 | static struct mac_device *dpaa_mac_dev_get(struct platform_device *pdev) |
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c index 672b64606321..b7cb61385ad8 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c | |||
@@ -1625,8 +1625,8 @@ void hns_nic_set_rx_mode(struct net_device *ndev) | |||
1625 | netdev_err(ndev, "sync uc address fail\n"); | 1625 | netdev_err(ndev, "sync uc address fail\n"); |
1626 | } | 1626 | } |
1627 | 1627 | ||
1628 | struct rtnl_link_stats64 *hns_nic_get_stats64(struct net_device *ndev, | 1628 | static void hns_nic_get_stats64(struct net_device *ndev, |
1629 | struct rtnl_link_stats64 *stats) | 1629 | struct rtnl_link_stats64 *stats) |
1630 | { | 1630 | { |
1631 | int idx = 0; | 1631 | int idx = 0; |
1632 | u64 tx_bytes = 0; | 1632 | u64 tx_bytes = 0; |
@@ -1668,8 +1668,6 @@ struct rtnl_link_stats64 *hns_nic_get_stats64(struct net_device *ndev, | |||
1668 | stats->tx_window_errors = ndev->stats.tx_window_errors; | 1668 | stats->tx_window_errors = ndev->stats.tx_window_errors; |
1669 | stats->rx_compressed = ndev->stats.rx_compressed; | 1669 | stats->rx_compressed = ndev->stats.rx_compressed; |
1670 | stats->tx_compressed = ndev->stats.tx_compressed; | 1670 | stats->tx_compressed = ndev->stats.tx_compressed; |
1671 | |||
1672 | return stats; | ||
1673 | } | 1671 | } |
1674 | 1672 | ||
1675 | static u16 | 1673 | static u16 |
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c index 702446a93697..1e53d7a82675 100644 --- a/drivers/net/ethernet/ibm/ehea/ehea_main.c +++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c | |||
@@ -328,8 +328,8 @@ out: | |||
328 | spin_unlock_irqrestore(&ehea_bcmc_regs.lock, flags); | 328 | spin_unlock_irqrestore(&ehea_bcmc_regs.lock, flags); |
329 | } | 329 | } |
330 | 330 | ||
331 | static struct rtnl_link_stats64 *ehea_get_stats64(struct net_device *dev, | 331 | static void ehea_get_stats64(struct net_device *dev, |
332 | struct rtnl_link_stats64 *stats) | 332 | struct rtnl_link_stats64 *stats) |
333 | { | 333 | { |
334 | struct ehea_port *port = netdev_priv(dev); | 334 | struct ehea_port *port = netdev_priv(dev); |
335 | u64 rx_packets = 0, tx_packets = 0, rx_bytes = 0, tx_bytes = 0; | 335 | u64 rx_packets = 0, tx_packets = 0, rx_bytes = 0, tx_bytes = 0; |
@@ -352,7 +352,6 @@ static struct rtnl_link_stats64 *ehea_get_stats64(struct net_device *dev, | |||
352 | 352 | ||
353 | stats->multicast = port->stats.multicast; | 353 | stats->multicast = port->stats.multicast; |
354 | stats->rx_errors = port->stats.rx_errors; | 354 | stats->rx_errors = port->stats.rx_errors; |
355 | return stats; | ||
356 | } | 355 | } |
357 | 356 | ||
358 | static void ehea_update_stats(struct work_struct *work) | 357 | static void ehea_update_stats(struct work_struct *work) |
diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h index 879cca47b021..a29b12e80855 100644 --- a/drivers/net/ethernet/intel/e1000e/e1000.h +++ b/drivers/net/ethernet/intel/e1000e/e1000.h | |||
@@ -493,8 +493,8 @@ int e1000e_setup_rx_resources(struct e1000_ring *ring); | |||
493 | int e1000e_setup_tx_resources(struct e1000_ring *ring); | 493 | int e1000e_setup_tx_resources(struct e1000_ring *ring); |
494 | void e1000e_free_rx_resources(struct e1000_ring *ring); | 494 | void e1000e_free_rx_resources(struct e1000_ring *ring); |
495 | void e1000e_free_tx_resources(struct e1000_ring *ring); | 495 | void e1000e_free_tx_resources(struct e1000_ring *ring); |
496 | struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev, | 496 | void e1000e_get_stats64(struct net_device *netdev, |
497 | struct rtnl_link_stats64 *stats); | 497 | struct rtnl_link_stats64 *stats); |
498 | void e1000e_set_interrupt_capability(struct e1000_adapter *adapter); | 498 | void e1000e_set_interrupt_capability(struct e1000_adapter *adapter); |
499 | void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter); | 499 | void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter); |
500 | void e1000e_get_hw_control(struct e1000_adapter *adapter); | 500 | void e1000e_get_hw_control(struct e1000_adapter *adapter); |
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index af3960853a32..723025b317cc 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c | |||
@@ -5920,8 +5920,8 @@ static void e1000_reset_task(struct work_struct *work) | |||
5920 | * | 5920 | * |
5921 | * Returns the address of the device statistics structure. | 5921 | * Returns the address of the device statistics structure. |
5922 | **/ | 5922 | **/ |
5923 | struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev, | 5923 | void e1000e_get_stats64(struct net_device *netdev, |
5924 | struct rtnl_link_stats64 *stats) | 5924 | struct rtnl_link_stats64 *stats) |
5925 | { | 5925 | { |
5926 | struct e1000_adapter *adapter = netdev_priv(netdev); | 5926 | struct e1000_adapter *adapter = netdev_priv(netdev); |
5927 | 5927 | ||
@@ -5958,7 +5958,6 @@ struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev, | |||
5958 | /* Tx Dropped needs to be maintained elsewhere */ | 5958 | /* Tx Dropped needs to be maintained elsewhere */ |
5959 | 5959 | ||
5960 | spin_unlock(&adapter->stats64_lock); | 5960 | spin_unlock(&adapter->stats64_lock); |
5961 | return stats; | ||
5962 | } | 5961 | } |
5963 | 5962 | ||
5964 | /** | 5963 | /** |
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c index bc5ef6eb3dd6..01db688cf539 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | |||
@@ -1118,8 +1118,8 @@ void fm10k_reset_rx_state(struct fm10k_intfc *interface) | |||
1118 | * Returns 64bit statistics, for use in the ndo_get_stats64 callback. This | 1118 | * Returns 64bit statistics, for use in the ndo_get_stats64 callback. This |
1119 | * function replaces fm10k_get_stats for kernels which support it. | 1119 | * function replaces fm10k_get_stats for kernels which support it. |
1120 | */ | 1120 | */ |
1121 | static struct rtnl_link_stats64 *fm10k_get_stats64(struct net_device *netdev, | 1121 | static void fm10k_get_stats64(struct net_device *netdev, |
1122 | struct rtnl_link_stats64 *stats) | 1122 | struct rtnl_link_stats64 *stats) |
1123 | { | 1123 | { |
1124 | struct fm10k_intfc *interface = netdev_priv(netdev); | 1124 | struct fm10k_intfc *interface = netdev_priv(netdev); |
1125 | struct fm10k_ring *ring; | 1125 | struct fm10k_ring *ring; |
@@ -1164,8 +1164,6 @@ static struct rtnl_link_stats64 *fm10k_get_stats64(struct net_device *netdev, | |||
1164 | 1164 | ||
1165 | /* following stats updated by fm10k_service_task() */ | 1165 | /* following stats updated by fm10k_service_task() */ |
1166 | stats->rx_missed_errors = netdev->stats.rx_missed_errors; | 1166 | stats->rx_missed_errors = netdev->stats.rx_missed_errors; |
1167 | |||
1168 | return stats; | ||
1169 | } | 1167 | } |
1170 | 1168 | ||
1171 | int fm10k_setup_tc(struct net_device *dev, u8 tc) | 1169 | int fm10k_setup_tc(struct net_device *dev, u8 tc) |
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h index ba8d30984bee..342007df4663 100644 --- a/drivers/net/ethernet/intel/i40e/i40e.h +++ b/drivers/net/ethernet/intel/i40e/i40e.h | |||
@@ -834,9 +834,8 @@ static inline void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector) | |||
834 | void i40e_irq_dynamic_disable_icr0(struct i40e_pf *pf); | 834 | void i40e_irq_dynamic_disable_icr0(struct i40e_pf *pf); |
835 | void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf, bool clearpba); | 835 | void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf, bool clearpba); |
836 | #ifdef I40E_FCOE | 836 | #ifdef I40E_FCOE |
837 | struct rtnl_link_stats64 *i40e_get_netdev_stats_struct( | 837 | void i40e_get_netdev_stats_struct(struct net_device *netdev, |
838 | struct net_device *netdev, | 838 | struct rtnl_link_stats64 *storage); |
839 | struct rtnl_link_stats64 *storage); | ||
840 | int i40e_set_mac(struct net_device *netdev, void *p); | 839 | int i40e_set_mac(struct net_device *netdev, void *p); |
841 | void i40e_set_rx_mode(struct net_device *netdev); | 840 | void i40e_set_rx_mode(struct net_device *netdev); |
842 | #endif | 841 | #endif |
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index ad4cf639430e..b2f76d24000d 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c | |||
@@ -409,15 +409,11 @@ struct rtnl_link_stats64 *i40e_get_vsi_stats_struct(struct i40e_vsi *vsi) | |||
409 | * Returns the address of the device statistics structure. | 409 | * Returns the address of the device statistics structure. |
410 | * The statistics are actually updated from the service task. | 410 | * The statistics are actually updated from the service task. |
411 | **/ | 411 | **/ |
412 | #ifdef I40E_FCOE | 412 | #ifndef I40E_FCOE |
413 | struct rtnl_link_stats64 *i40e_get_netdev_stats_struct( | 413 | static |
414 | struct net_device *netdev, | ||
415 | struct rtnl_link_stats64 *stats) | ||
416 | #else | ||
417 | static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct( | ||
418 | struct net_device *netdev, | ||
419 | struct rtnl_link_stats64 *stats) | ||
420 | #endif | 414 | #endif |
415 | void i40e_get_netdev_stats_struct(struct net_device *netdev, | ||
416 | struct rtnl_link_stats64 *stats) | ||
421 | { | 417 | { |
422 | struct i40e_netdev_priv *np = netdev_priv(netdev); | 418 | struct i40e_netdev_priv *np = netdev_priv(netdev); |
423 | struct i40e_ring *tx_ring, *rx_ring; | 419 | struct i40e_ring *tx_ring, *rx_ring; |
@@ -426,10 +422,10 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct( | |||
426 | int i; | 422 | int i; |
427 | 423 | ||
428 | if (test_bit(__I40E_DOWN, &vsi->state)) | 424 | if (test_bit(__I40E_DOWN, &vsi->state)) |
429 | return stats; | 425 | return; |
430 | 426 | ||
431 | if (!vsi->tx_rings) | 427 | if (!vsi->tx_rings) |
432 | return stats; | 428 | return; |
433 | 429 | ||
434 | rcu_read_lock(); | 430 | rcu_read_lock(); |
435 | for (i = 0; i < vsi->num_queue_pairs; i++) { | 431 | for (i = 0; i < vsi->num_queue_pairs; i++) { |
@@ -469,8 +465,6 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct( | |||
469 | stats->rx_dropped = vsi_stats->rx_dropped; | 465 | stats->rx_dropped = vsi_stats->rx_dropped; |
470 | stats->rx_crc_errors = vsi_stats->rx_crc_errors; | 466 | stats->rx_crc_errors = vsi_stats->rx_crc_errors; |
471 | stats->rx_length_errors = vsi_stats->rx_length_errors; | 467 | stats->rx_length_errors = vsi_stats->rx_length_errors; |
472 | |||
473 | return stats; | ||
474 | } | 468 | } |
475 | 469 | ||
476 | /** | 470 | /** |
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 594604e09f8d..7546109d4980 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -137,8 +137,8 @@ static void igb_update_phy_info(unsigned long); | |||
137 | static void igb_watchdog(unsigned long); | 137 | static void igb_watchdog(unsigned long); |
138 | static void igb_watchdog_task(struct work_struct *); | 138 | static void igb_watchdog_task(struct work_struct *); |
139 | static netdev_tx_t igb_xmit_frame(struct sk_buff *skb, struct net_device *); | 139 | static netdev_tx_t igb_xmit_frame(struct sk_buff *skb, struct net_device *); |
140 | static struct rtnl_link_stats64 *igb_get_stats64(struct net_device *dev, | 140 | static void igb_get_stats64(struct net_device *dev, |
141 | struct rtnl_link_stats64 *stats); | 141 | struct rtnl_link_stats64 *stats); |
142 | static int igb_change_mtu(struct net_device *, int); | 142 | static int igb_change_mtu(struct net_device *, int); |
143 | static int igb_set_mac(struct net_device *, void *); | 143 | static int igb_set_mac(struct net_device *, void *); |
144 | static void igb_set_uta(struct igb_adapter *adapter, bool set); | 144 | static void igb_set_uta(struct igb_adapter *adapter, bool set); |
@@ -5404,8 +5404,8 @@ static void igb_reset_task(struct work_struct *work) | |||
5404 | * @netdev: network interface device structure | 5404 | * @netdev: network interface device structure |
5405 | * @stats: rtnl_link_stats64 pointer | 5405 | * @stats: rtnl_link_stats64 pointer |
5406 | **/ | 5406 | **/ |
5407 | static struct rtnl_link_stats64 *igb_get_stats64(struct net_device *netdev, | 5407 | static void igb_get_stats64(struct net_device *netdev, |
5408 | struct rtnl_link_stats64 *stats) | 5408 | struct rtnl_link_stats64 *stats) |
5409 | { | 5409 | { |
5410 | struct igb_adapter *adapter = netdev_priv(netdev); | 5410 | struct igb_adapter *adapter = netdev_priv(netdev); |
5411 | 5411 | ||
@@ -5413,8 +5413,6 @@ static struct rtnl_link_stats64 *igb_get_stats64(struct net_device *netdev, | |||
5413 | igb_update_stats(adapter, &adapter->stats64); | 5413 | igb_update_stats(adapter, &adapter->stats64); |
5414 | memcpy(stats, &adapter->stats64, sizeof(*stats)); | 5414 | memcpy(stats, &adapter->stats64, sizeof(*stats)); |
5415 | spin_unlock(&adapter->stats64_lock); | 5415 | spin_unlock(&adapter->stats64_lock); |
5416 | |||
5417 | return stats; | ||
5418 | } | 5416 | } |
5419 | 5417 | ||
5420 | /** | 5418 | /** |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 0c6eca570791..ffe7d940d9ff 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -8173,8 +8173,9 @@ static void ixgbe_netpoll(struct net_device *netdev) | |||
8173 | } | 8173 | } |
8174 | 8174 | ||
8175 | #endif | 8175 | #endif |
8176 | static struct rtnl_link_stats64 *ixgbe_get_stats64(struct net_device *netdev, | 8176 | |
8177 | struct rtnl_link_stats64 *stats) | 8177 | static void ixgbe_get_stats64(struct net_device *netdev, |
8178 | struct rtnl_link_stats64 *stats) | ||
8178 | { | 8179 | { |
8179 | struct ixgbe_adapter *adapter = netdev_priv(netdev); | 8180 | struct ixgbe_adapter *adapter = netdev_priv(netdev); |
8180 | int i; | 8181 | int i; |
@@ -8212,13 +8213,13 @@ static struct rtnl_link_stats64 *ixgbe_get_stats64(struct net_device *netdev, | |||
8212 | } | 8213 | } |
8213 | } | 8214 | } |
8214 | rcu_read_unlock(); | 8215 | rcu_read_unlock(); |
8216 | |||
8215 | /* following stats updated by ixgbe_watchdog_task() */ | 8217 | /* following stats updated by ixgbe_watchdog_task() */ |
8216 | stats->multicast = netdev->stats.multicast; | 8218 | stats->multicast = netdev->stats.multicast; |
8217 | stats->rx_errors = netdev->stats.rx_errors; | 8219 | stats->rx_errors = netdev->stats.rx_errors; |
8218 | stats->rx_length_errors = netdev->stats.rx_length_errors; | 8220 | stats->rx_length_errors = netdev->stats.rx_length_errors; |
8219 | stats->rx_crc_errors = netdev->stats.rx_crc_errors; | 8221 | stats->rx_crc_errors = netdev->stats.rx_crc_errors; |
8220 | stats->rx_missed_errors = netdev->stats.rx_missed_errors; | 8222 | stats->rx_missed_errors = netdev->stats.rx_missed_errors; |
8221 | return stats; | ||
8222 | } | 8223 | } |
8223 | 8224 | ||
8224 | #ifdef CONFIG_IXGBE_DCB | 8225 | #ifdef CONFIG_IXGBE_DCB |
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index 1a28349114f8..b06863560c7d 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | |||
@@ -3896,8 +3896,8 @@ static void ixgbevf_shutdown(struct pci_dev *pdev) | |||
3896 | ixgbevf_suspend(pdev, PMSG_SUSPEND); | 3896 | ixgbevf_suspend(pdev, PMSG_SUSPEND); |
3897 | } | 3897 | } |
3898 | 3898 | ||
3899 | static struct rtnl_link_stats64 *ixgbevf_get_stats(struct net_device *netdev, | 3899 | static void ixgbevf_get_stats(struct net_device *netdev, |
3900 | struct rtnl_link_stats64 *stats) | 3900 | struct rtnl_link_stats64 *stats) |
3901 | { | 3901 | { |
3902 | struct ixgbevf_adapter *adapter = netdev_priv(netdev); | 3902 | struct ixgbevf_adapter *adapter = netdev_priv(netdev); |
3903 | unsigned int start; | 3903 | unsigned int start; |
@@ -3930,8 +3930,6 @@ static struct rtnl_link_stats64 *ixgbevf_get_stats(struct net_device *netdev, | |||
3930 | stats->tx_bytes += bytes; | 3930 | stats->tx_bytes += bytes; |
3931 | stats->tx_packets += packets; | 3931 | stats->tx_packets += packets; |
3932 | } | 3932 | } |
3933 | |||
3934 | return stats; | ||
3935 | } | 3933 | } |
3936 | 3934 | ||
3937 | #define IXGBEVF_MAX_MAC_HDR_LEN 127 | 3935 | #define IXGBEVF_MAX_MAC_HDR_LEN 127 |
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index e05e22705cf7..3607d8febbcf 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c | |||
@@ -652,7 +652,7 @@ static void mvneta_mib_counters_clear(struct mvneta_port *pp) | |||
652 | } | 652 | } |
653 | 653 | ||
654 | /* Get System Network Statistics */ | 654 | /* Get System Network Statistics */ |
655 | static struct rtnl_link_stats64 * | 655 | static void |
656 | mvneta_get_stats64(struct net_device *dev, | 656 | mvneta_get_stats64(struct net_device *dev, |
657 | struct rtnl_link_stats64 *stats) | 657 | struct rtnl_link_stats64 *stats) |
658 | { | 658 | { |
@@ -686,8 +686,6 @@ mvneta_get_stats64(struct net_device *dev, | |||
686 | stats->rx_dropped = dev->stats.rx_dropped; | 686 | stats->rx_dropped = dev->stats.rx_dropped; |
687 | 687 | ||
688 | stats->tx_dropped = dev->stats.tx_dropped; | 688 | stats->tx_dropped = dev->stats.tx_dropped; |
689 | |||
690 | return stats; | ||
691 | } | 689 | } |
692 | 690 | ||
693 | /* Rx descriptors helper methods */ | 691 | /* Rx descriptors helper methods */ |
diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c index 4fe430ceb194..69db40e1a4e1 100644 --- a/drivers/net/ethernet/marvell/mvpp2.c +++ b/drivers/net/ethernet/marvell/mvpp2.c | |||
@@ -5739,7 +5739,7 @@ error: | |||
5739 | return err; | 5739 | return err; |
5740 | } | 5740 | } |
5741 | 5741 | ||
5742 | static struct rtnl_link_stats64 * | 5742 | static void |
5743 | mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 5743 | mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
5744 | { | 5744 | { |
5745 | struct mvpp2_port *port = netdev_priv(dev); | 5745 | struct mvpp2_port *port = netdev_priv(dev); |
@@ -5771,8 +5771,6 @@ mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
5771 | stats->rx_errors = dev->stats.rx_errors; | 5771 | stats->rx_errors = dev->stats.rx_errors; |
5772 | stats->rx_dropped = dev->stats.rx_dropped; | 5772 | stats->rx_dropped = dev->stats.rx_dropped; |
5773 | stats->tx_dropped = dev->stats.tx_dropped; | 5773 | stats->tx_dropped = dev->stats.tx_dropped; |
5774 | |||
5775 | return stats; | ||
5776 | } | 5774 | } |
5777 | 5775 | ||
5778 | static int mvpp2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) | 5776 | static int mvpp2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) |
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c index b60ad0e56a9f..18d6336fa162 100644 --- a/drivers/net/ethernet/marvell/sky2.c +++ b/drivers/net/ethernet/marvell/sky2.c | |||
@@ -3888,8 +3888,8 @@ static void sky2_set_multicast(struct net_device *dev) | |||
3888 | gma_write16(hw, port, GM_RX_CTRL, reg); | 3888 | gma_write16(hw, port, GM_RX_CTRL, reg); |
3889 | } | 3889 | } |
3890 | 3890 | ||
3891 | static struct rtnl_link_stats64 *sky2_get_stats(struct net_device *dev, | 3891 | static void sky2_get_stats(struct net_device *dev, |
3892 | struct rtnl_link_stats64 *stats) | 3892 | struct rtnl_link_stats64 *stats) |
3893 | { | 3893 | { |
3894 | struct sky2_port *sky2 = netdev_priv(dev); | 3894 | struct sky2_port *sky2 = netdev_priv(dev); |
3895 | struct sky2_hw *hw = sky2->hw; | 3895 | struct sky2_hw *hw = sky2->hw; |
@@ -3929,8 +3929,6 @@ static struct rtnl_link_stats64 *sky2_get_stats(struct net_device *dev, | |||
3929 | stats->rx_dropped = dev->stats.rx_dropped; | 3929 | stats->rx_dropped = dev->stats.rx_dropped; |
3930 | stats->rx_fifo_errors = dev->stats.rx_fifo_errors; | 3930 | stats->rx_fifo_errors = dev->stats.rx_fifo_errors; |
3931 | stats->tx_fifo_errors = dev->stats.tx_fifo_errors; | 3931 | stats->tx_fifo_errors = dev->stats.tx_fifo_errors; |
3932 | |||
3933 | return stats; | ||
3934 | } | 3932 | } |
3935 | 3933 | ||
3936 | /* Can have one global because blinking is controlled by | 3934 | /* Can have one global because blinking is controlled by |
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index 3dd87889e67e..25ae0c5bce3a 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c | |||
@@ -462,8 +462,8 @@ static void mtk_stats_update(struct mtk_eth *eth) | |||
462 | } | 462 | } |
463 | } | 463 | } |
464 | 464 | ||
465 | static struct rtnl_link_stats64 *mtk_get_stats64(struct net_device *dev, | 465 | static void mtk_get_stats64(struct net_device *dev, |
466 | struct rtnl_link_stats64 *storage) | 466 | struct rtnl_link_stats64 *storage) |
467 | { | 467 | { |
468 | struct mtk_mac *mac = netdev_priv(dev); | 468 | struct mtk_mac *mac = netdev_priv(dev); |
469 | struct mtk_hw_stats *hw_stats = mac->hw_stats; | 469 | struct mtk_hw_stats *hw_stats = mac->hw_stats; |
@@ -494,8 +494,6 @@ static struct rtnl_link_stats64 *mtk_get_stats64(struct net_device *dev, | |||
494 | storage->tx_errors = dev->stats.tx_errors; | 494 | storage->tx_errors = dev->stats.tx_errors; |
495 | storage->rx_dropped = dev->stats.rx_dropped; | 495 | storage->rx_dropped = dev->stats.rx_dropped; |
496 | storage->tx_dropped = dev->stats.tx_dropped; | 496 | storage->tx_dropped = dev->stats.tx_dropped; |
497 | |||
498 | return storage; | ||
499 | } | 497 | } |
500 | 498 | ||
501 | static inline int mtk_max_frag_size(int mtu) | 499 | static inline int mtk_max_frag_size(int mtu) |
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index edbe200ac2fa..06ef23f040a4 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c | |||
@@ -1321,7 +1321,7 @@ static void mlx4_en_tx_timeout(struct net_device *dev) | |||
1321 | } | 1321 | } |
1322 | 1322 | ||
1323 | 1323 | ||
1324 | static struct rtnl_link_stats64 * | 1324 | static void |
1325 | mlx4_en_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 1325 | mlx4_en_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
1326 | { | 1326 | { |
1327 | struct mlx4_en_priv *priv = netdev_priv(dev); | 1327 | struct mlx4_en_priv *priv = netdev_priv(dev); |
@@ -1330,8 +1330,6 @@ mlx4_en_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
1330 | mlx4_en_fold_software_stats(dev); | 1330 | mlx4_en_fold_software_stats(dev); |
1331 | netdev_stats_to_stats64(stats, &dev->stats); | 1331 | netdev_stats_to_stats64(stats, &dev->stats); |
1332 | spin_unlock_bh(&priv->stats_lock); | 1332 | spin_unlock_bh(&priv->stats_lock); |
1333 | |||
1334 | return stats; | ||
1335 | } | 1333 | } |
1336 | 1334 | ||
1337 | static void mlx4_en_set_default_moderation(struct mlx4_en_priv *priv) | 1335 | static void mlx4_en_set_default_moderation(struct mlx4_en_priv *priv) |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 88dd731bb8cb..60e5670452a1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c | |||
@@ -2686,7 +2686,7 @@ mqprio: | |||
2686 | return mlx5e_setup_tc(dev, tc->tc); | 2686 | return mlx5e_setup_tc(dev, tc->tc); |
2687 | } | 2687 | } |
2688 | 2688 | ||
2689 | static struct rtnl_link_stats64 * | 2689 | static void |
2690 | mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats) | 2690 | mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats) |
2691 | { | 2691 | { |
2692 | struct mlx5e_priv *priv = netdev_priv(dev); | 2692 | struct mlx5e_priv *priv = netdev_priv(dev); |
@@ -2729,7 +2729,6 @@ mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
2729 | stats->multicast = | 2729 | stats->multicast = |
2730 | VPORT_COUNTER_GET(vstats, received_eth_multicast.packets); | 2730 | VPORT_COUNTER_GET(vstats, received_eth_multicast.packets); |
2731 | 2731 | ||
2732 | return stats; | ||
2733 | } | 2732 | } |
2734 | 2733 | ||
2735 | static void mlx5e_set_rx_mode(struct net_device *dev) | 2734 | static void mlx5e_set_rx_mode(struct net_device *dev) |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c index 850378893b25..2c864574a9d5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | |||
@@ -374,13 +374,12 @@ int mlx5e_get_offload_stats(int attr_id, const struct net_device *dev, | |||
374 | return -EINVAL; | 374 | return -EINVAL; |
375 | } | 375 | } |
376 | 376 | ||
377 | static struct rtnl_link_stats64 * | 377 | static void |
378 | mlx5e_rep_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats) | 378 | mlx5e_rep_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats) |
379 | { | 379 | { |
380 | struct mlx5e_priv *priv = netdev_priv(dev); | 380 | struct mlx5e_priv *priv = netdev_priv(dev); |
381 | 381 | ||
382 | memcpy(stats, &priv->stats.vf_vport, sizeof(*stats)); | 382 | memcpy(stats, &priv->stats.vf_vport, sizeof(*stats)); |
383 | return stats; | ||
384 | } | 383 | } |
385 | 384 | ||
386 | static const struct switchdev_ops mlx5e_rep_switchdev_ops = { | 385 | static const struct switchdev_ops mlx5e_rep_switchdev_ops = { |
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index d768c7b6c6d6..46c53a042e6b 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c | |||
@@ -947,15 +947,13 @@ out: | |||
947 | /* Return the stats from a cache that is updated periodically, | 947 | /* Return the stats from a cache that is updated periodically, |
948 | * as this function might get called in an atomic context. | 948 | * as this function might get called in an atomic context. |
949 | */ | 949 | */ |
950 | static struct rtnl_link_stats64 * | 950 | static void |
951 | mlxsw_sp_port_get_stats64(struct net_device *dev, | 951 | mlxsw_sp_port_get_stats64(struct net_device *dev, |
952 | struct rtnl_link_stats64 *stats) | 952 | struct rtnl_link_stats64 *stats) |
953 | { | 953 | { |
954 | struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev); | 954 | struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev); |
955 | 955 | ||
956 | memcpy(stats, mlxsw_sp_port->hw_stats.cache, sizeof(*stats)); | 956 | memcpy(stats, mlxsw_sp_port->hw_stats.cache, sizeof(*stats)); |
957 | |||
958 | return stats; | ||
959 | } | 957 | } |
960 | 958 | ||
961 | int mlxsw_sp_port_vlan_set(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid_begin, | 959 | int mlxsw_sp_port_vlan_set(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid_begin, |
diff --git a/drivers/net/ethernet/mellanox/mlxsw/switchx2.c b/drivers/net/ethernet/mellanox/mlxsw/switchx2.c index 150ccf5192a9..696d40612d28 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/switchx2.c +++ b/drivers/net/ethernet/mellanox/mlxsw/switchx2.c | |||
@@ -381,7 +381,7 @@ static int mlxsw_sx_port_change_mtu(struct net_device *dev, int mtu) | |||
381 | return 0; | 381 | return 0; |
382 | } | 382 | } |
383 | 383 | ||
384 | static struct rtnl_link_stats64 * | 384 | static void |
385 | mlxsw_sx_port_get_stats64(struct net_device *dev, | 385 | mlxsw_sx_port_get_stats64(struct net_device *dev, |
386 | struct rtnl_link_stats64 *stats) | 386 | struct rtnl_link_stats64 *stats) |
387 | { | 387 | { |
@@ -410,7 +410,6 @@ mlxsw_sx_port_get_stats64(struct net_device *dev, | |||
410 | tx_dropped += p->tx_dropped; | 410 | tx_dropped += p->tx_dropped; |
411 | } | 411 | } |
412 | stats->tx_dropped = tx_dropped; | 412 | stats->tx_dropped = tx_dropped; |
413 | return stats; | ||
414 | } | 413 | } |
415 | 414 | ||
416 | static int mlxsw_sx_port_get_phys_port_name(struct net_device *dev, char *name, | 415 | static int mlxsw_sx_port_get_phys_port_name(struct net_device *dev, char *name, |
diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index e506ca876d0d..db297cfce6f4 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c | |||
@@ -378,8 +378,8 @@ static inline void put_be32(__be32 val, __be32 __iomem * p) | |||
378 | __raw_writel((__force __u32) val, (__force void __iomem *)p); | 378 | __raw_writel((__force __u32) val, (__force void __iomem *)p); |
379 | } | 379 | } |
380 | 380 | ||
381 | static struct rtnl_link_stats64 *myri10ge_get_stats(struct net_device *dev, | 381 | static void myri10ge_get_stats(struct net_device *dev, |
382 | struct rtnl_link_stats64 *stats); | 382 | struct rtnl_link_stats64 *stats); |
383 | 383 | ||
384 | static void set_fw_name(struct myri10ge_priv *mgp, char *name, bool allocated) | 384 | static void set_fw_name(struct myri10ge_priv *mgp, char *name, bool allocated) |
385 | { | 385 | { |
@@ -3119,8 +3119,8 @@ drop: | |||
3119 | return NETDEV_TX_OK; | 3119 | return NETDEV_TX_OK; |
3120 | } | 3120 | } |
3121 | 3121 | ||
3122 | static struct rtnl_link_stats64 *myri10ge_get_stats(struct net_device *dev, | 3122 | static void myri10ge_get_stats(struct net_device *dev, |
3123 | struct rtnl_link_stats64 *stats) | 3123 | struct rtnl_link_stats64 *stats) |
3124 | { | 3124 | { |
3125 | const struct myri10ge_priv *mgp = netdev_priv(dev); | 3125 | const struct myri10ge_priv *mgp = netdev_priv(dev); |
3126 | const struct myri10ge_slice_netstats *slice_stats; | 3126 | const struct myri10ge_slice_netstats *slice_stats; |
@@ -3135,7 +3135,6 @@ static struct rtnl_link_stats64 *myri10ge_get_stats(struct net_device *dev, | |||
3135 | stats->rx_dropped += slice_stats->rx_dropped; | 3135 | stats->rx_dropped += slice_stats->rx_dropped; |
3136 | stats->tx_dropped += slice_stats->tx_dropped; | 3136 | stats->tx_dropped += slice_stats->tx_dropped; |
3137 | } | 3137 | } |
3138 | return stats; | ||
3139 | } | 3138 | } |
3140 | 3139 | ||
3141 | static void myri10ge_set_multicast_list(struct net_device *dev) | 3140 | static void myri10ge_set_multicast_list(struct net_device *dev) |
diff --git a/drivers/net/ethernet/neterion/vxge/vxge-main.c b/drivers/net/ethernet/neterion/vxge/vxge-main.c index e07b936f64ec..f364502229db 100644 --- a/drivers/net/ethernet/neterion/vxge/vxge-main.c +++ b/drivers/net/ethernet/neterion/vxge/vxge-main.c | |||
@@ -3111,7 +3111,7 @@ static int vxge_change_mtu(struct net_device *dev, int new_mtu) | |||
3111 | * @stats: pointer to struct rtnl_link_stats64 | 3111 | * @stats: pointer to struct rtnl_link_stats64 |
3112 | * | 3112 | * |
3113 | */ | 3113 | */ |
3114 | static struct rtnl_link_stats64 * | 3114 | static void |
3115 | vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats) | 3115 | vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats) |
3116 | { | 3116 | { |
3117 | struct vxgedev *vdev = netdev_priv(dev); | 3117 | struct vxgedev *vdev = netdev_priv(dev); |
@@ -3150,8 +3150,6 @@ vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats) | |||
3150 | net_stats->tx_bytes += bytes; | 3150 | net_stats->tx_bytes += bytes; |
3151 | net_stats->tx_errors += txstats->tx_errors; | 3151 | net_stats->tx_errors += txstats->tx_errors; |
3152 | } | 3152 | } |
3153 | |||
3154 | return net_stats; | ||
3155 | } | 3153 | } |
3156 | 3154 | ||
3157 | static enum vxge_hw_status vxge_timestamp_config(struct __vxge_hw_device *devh) | 3155 | static enum vxge_hw_status vxge_timestamp_config(struct __vxge_hw_device *devh) |
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c index e8d448109e03..67afd95ffb93 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c | |||
@@ -2638,8 +2638,8 @@ static int nfp_net_change_mtu(struct net_device *netdev, int new_mtu) | |||
2638 | return nfp_net_ring_reconfig(nn, &nn->xdp_prog, &rx, NULL); | 2638 | return nfp_net_ring_reconfig(nn, &nn->xdp_prog, &rx, NULL); |
2639 | } | 2639 | } |
2640 | 2640 | ||
2641 | static struct rtnl_link_stats64 *nfp_net_stat64(struct net_device *netdev, | 2641 | static void nfp_net_stat64(struct net_device *netdev, |
2642 | struct rtnl_link_stats64 *stats) | 2642 | struct rtnl_link_stats64 *stats) |
2643 | { | 2643 | { |
2644 | struct nfp_net *nn = netdev_priv(netdev); | 2644 | struct nfp_net *nn = netdev_priv(netdev); |
2645 | int r; | 2645 | int r; |
@@ -2669,8 +2669,6 @@ static struct rtnl_link_stats64 *nfp_net_stat64(struct net_device *netdev, | |||
2669 | stats->tx_bytes += data[1]; | 2669 | stats->tx_bytes += data[1]; |
2670 | stats->tx_errors += data[2]; | 2670 | stats->tx_errors += data[2]; |
2671 | } | 2671 | } |
2672 | |||
2673 | return stats; | ||
2674 | } | 2672 | } |
2675 | 2673 | ||
2676 | static bool nfp_net_ebpf_capable(struct nfp_net *nn) | 2674 | static bool nfp_net_ebpf_capable(struct nfp_net *nn) |
diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c index 3913f07279d2..dfc2c8149d22 100644 --- a/drivers/net/ethernet/nvidia/forcedeth.c +++ b/drivers/net/ethernet/nvidia/forcedeth.c | |||
@@ -1733,7 +1733,7 @@ static void nv_update_stats(struct net_device *dev) | |||
1733 | * Called with read_lock(&dev_base_lock) held for read - | 1733 | * Called with read_lock(&dev_base_lock) held for read - |
1734 | * only synchronized against unregister_netdevice. | 1734 | * only synchronized against unregister_netdevice. |
1735 | */ | 1735 | */ |
1736 | static struct rtnl_link_stats64* | 1736 | static void |
1737 | nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage) | 1737 | nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage) |
1738 | __acquires(&netdev_priv(dev)->hwstats_lock) | 1738 | __acquires(&netdev_priv(dev)->hwstats_lock) |
1739 | __releases(&netdev_priv(dev)->hwstats_lock) | 1739 | __releases(&netdev_priv(dev)->hwstats_lock) |
@@ -1793,8 +1793,6 @@ nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage) | |||
1793 | 1793 | ||
1794 | spin_unlock_bh(&np->hwstats_lock); | 1794 | spin_unlock_bh(&np->hwstats_lock); |
1795 | } | 1795 | } |
1796 | |||
1797 | return storage; | ||
1798 | } | 1796 | } |
1799 | 1797 | ||
1800 | /* | 1798 | /* |
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c index 561fb94c7267..86fb9d3df700 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | |||
@@ -90,8 +90,8 @@ static irqreturn_t netxen_msix_intr(int irq, void *data); | |||
90 | 90 | ||
91 | static void netxen_free_ip_list(struct netxen_adapter *, bool); | 91 | static void netxen_free_ip_list(struct netxen_adapter *, bool); |
92 | static void netxen_restore_indev_addr(struct net_device *dev, unsigned long); | 92 | static void netxen_restore_indev_addr(struct net_device *dev, unsigned long); |
93 | static struct rtnl_link_stats64 *netxen_nic_get_stats(struct net_device *dev, | 93 | static void netxen_nic_get_stats(struct net_device *dev, |
94 | struct rtnl_link_stats64 *stats); | 94 | struct rtnl_link_stats64 *stats); |
95 | static int netxen_nic_set_mac(struct net_device *netdev, void *p); | 95 | static int netxen_nic_set_mac(struct net_device *netdev, void *p); |
96 | 96 | ||
97 | /* PCI Device ID Table */ | 97 | /* PCI Device ID Table */ |
@@ -2302,8 +2302,8 @@ request_reset: | |||
2302 | clear_bit(__NX_RESETTING, &adapter->state); | 2302 | clear_bit(__NX_RESETTING, &adapter->state); |
2303 | } | 2303 | } |
2304 | 2304 | ||
2305 | static struct rtnl_link_stats64 *netxen_nic_get_stats(struct net_device *netdev, | 2305 | static void netxen_nic_get_stats(struct net_device *netdev, |
2306 | struct rtnl_link_stats64 *stats) | 2306 | struct rtnl_link_stats64 *stats) |
2307 | { | 2307 | { |
2308 | struct netxen_adapter *adapter = netdev_priv(netdev); | 2308 | struct netxen_adapter *adapter = netdev_priv(netdev); |
2309 | 2309 | ||
@@ -2313,8 +2313,6 @@ static struct rtnl_link_stats64 *netxen_nic_get_stats(struct net_device *netdev, | |||
2313 | stats->tx_bytes = adapter->stats.txbytes; | 2313 | stats->tx_bytes = adapter->stats.txbytes; |
2314 | stats->rx_dropped = adapter->stats.rxdropped; | 2314 | stats->rx_dropped = adapter->stats.rxdropped; |
2315 | stats->tx_dropped = adapter->stats.txdropped; | 2315 | stats->tx_dropped = adapter->stats.txdropped; |
2316 | |||
2317 | return stats; | ||
2318 | } | 2316 | } |
2319 | 2317 | ||
2320 | static irqreturn_t netxen_intr(int irq, void *data) | 2318 | static irqreturn_t netxen_intr(int irq, void *data) |
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c index b58509feecd5..40a76a1d5973 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_main.c +++ b/drivers/net/ethernet/qlogic/qede/qede_main.c | |||
@@ -398,9 +398,8 @@ void qede_fill_by_demand_stats(struct qede_dev *edev) | |||
398 | edev->stats.tx_mac_ctrl_frames = stats.tx_mac_ctrl_frames; | 398 | edev->stats.tx_mac_ctrl_frames = stats.tx_mac_ctrl_frames; |
399 | } | 399 | } |
400 | 400 | ||
401 | static | 401 | static void qede_get_stats64(struct net_device *dev, |
402 | struct rtnl_link_stats64 *qede_get_stats64(struct net_device *dev, | 402 | struct rtnl_link_stats64 *stats) |
403 | struct rtnl_link_stats64 *stats) | ||
404 | { | 403 | { |
405 | struct qede_dev *edev = netdev_priv(dev); | 404 | struct qede_dev *edev = netdev_priv(dev); |
406 | 405 | ||
@@ -430,8 +429,6 @@ struct rtnl_link_stats64 *qede_get_stats64(struct net_device *dev, | |||
430 | stats->collisions = edev->stats.tx_total_collisions; | 429 | stats->collisions = edev->stats.tx_total_collisions; |
431 | stats->rx_crc_errors = edev->stats.rx_crc_errors; | 430 | stats->rx_crc_errors = edev->stats.rx_crc_errors; |
432 | stats->rx_frame_errors = edev->stats.rx_align_errors; | 431 | stats->rx_frame_errors = edev->stats.rx_align_errors; |
433 | |||
434 | return stats; | ||
435 | } | 432 | } |
436 | 433 | ||
437 | #ifdef CONFIG_QED_SRIOV | 434 | #ifdef CONFIG_QED_SRIOV |
diff --git a/drivers/net/ethernet/qualcomm/emac/emac.c b/drivers/net/ethernet/qualcomm/emac/emac.c index 422289c232bc..40ebe010b06f 100644 --- a/drivers/net/ethernet/qualcomm/emac/emac.c +++ b/drivers/net/ethernet/qualcomm/emac/emac.c | |||
@@ -312,8 +312,8 @@ static int emac_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) | |||
312 | } | 312 | } |
313 | 313 | ||
314 | /* Provide network statistics info for the interface */ | 314 | /* Provide network statistics info for the interface */ |
315 | static struct rtnl_link_stats64 *emac_get_stats64(struct net_device *netdev, | 315 | static void emac_get_stats64(struct net_device *netdev, |
316 | struct rtnl_link_stats64 *net_stats) | 316 | struct rtnl_link_stats64 *net_stats) |
317 | { | 317 | { |
318 | struct emac_adapter *adpt = netdev_priv(netdev); | 318 | struct emac_adapter *adpt = netdev_priv(netdev); |
319 | unsigned int addr = REG_MAC_RX_STATUS_BIN; | 319 | unsigned int addr = REG_MAC_RX_STATUS_BIN; |
@@ -377,8 +377,6 @@ static struct rtnl_link_stats64 *emac_get_stats64(struct net_device *netdev, | |||
377 | net_stats->tx_window_errors = stats->tx_late_col; | 377 | net_stats->tx_window_errors = stats->tx_late_col; |
378 | 378 | ||
379 | spin_unlock(&stats->lock); | 379 | spin_unlock(&stats->lock); |
380 | |||
381 | return net_stats; | ||
382 | } | 380 | } |
383 | 381 | ||
384 | static const struct net_device_ops emac_netdev_ops = { | 382 | static const struct net_device_ops emac_netdev_ops = { |
diff --git a/drivers/net/ethernet/realtek/8139too.c b/drivers/net/ethernet/realtek/8139too.c index 9bc047ac883b..5ad59c6d29a4 100644 --- a/drivers/net/ethernet/realtek/8139too.c +++ b/drivers/net/ethernet/realtek/8139too.c | |||
@@ -653,9 +653,8 @@ static int rtl8139_poll(struct napi_struct *napi, int budget); | |||
653 | static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance); | 653 | static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance); |
654 | static int rtl8139_close (struct net_device *dev); | 654 | static int rtl8139_close (struct net_device *dev); |
655 | static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd); | 655 | static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd); |
656 | static struct rtnl_link_stats64 *rtl8139_get_stats64(struct net_device *dev, | 656 | static void rtl8139_get_stats64(struct net_device *dev, |
657 | struct rtnl_link_stats64 | 657 | struct rtnl_link_stats64 *stats); |
658 | *stats); | ||
659 | static void rtl8139_set_rx_mode (struct net_device *dev); | 658 | static void rtl8139_set_rx_mode (struct net_device *dev); |
660 | static void __set_rx_mode (struct net_device *dev); | 659 | static void __set_rx_mode (struct net_device *dev); |
661 | static void rtl8139_hw_start (struct net_device *dev); | 660 | static void rtl8139_hw_start (struct net_device *dev); |
@@ -2516,7 +2515,7 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
2516 | } | 2515 | } |
2517 | 2516 | ||
2518 | 2517 | ||
2519 | static struct rtnl_link_stats64 * | 2518 | static void |
2520 | rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 2519 | rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
2521 | { | 2520 | { |
2522 | struct rtl8139_private *tp = netdev_priv(dev); | 2521 | struct rtl8139_private *tp = netdev_priv(dev); |
@@ -2544,8 +2543,6 @@ rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
2544 | stats->tx_packets = tp->tx_stats.packets; | 2543 | stats->tx_packets = tp->tx_stats.packets; |
2545 | stats->tx_bytes = tp->tx_stats.bytes; | 2544 | stats->tx_bytes = tp->tx_stats.bytes; |
2546 | } while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start)); | 2545 | } while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start)); |
2547 | |||
2548 | return stats; | ||
2549 | } | 2546 | } |
2550 | 2547 | ||
2551 | /* Set or clear the multicast filter for this adaptor. | 2548 | /* Set or clear the multicast filter for this adaptor. |
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 44389c90056a..858f4554de11 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c | |||
@@ -7755,7 +7755,7 @@ err_pm_runtime_put: | |||
7755 | goto out; | 7755 | goto out; |
7756 | } | 7756 | } |
7757 | 7757 | ||
7758 | static struct rtnl_link_stats64 * | 7758 | static void |
7759 | rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 7759 | rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
7760 | { | 7760 | { |
7761 | struct rtl8169_private *tp = netdev_priv(dev); | 7761 | struct rtl8169_private *tp = netdev_priv(dev); |
@@ -7809,8 +7809,6 @@ rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
7809 | le16_to_cpu(tp->tc_offset.tx_aborted); | 7809 | le16_to_cpu(tp->tc_offset.tx_aborted); |
7810 | 7810 | ||
7811 | pm_runtime_put_noidle(&pdev->dev); | 7811 | pm_runtime_put_noidle(&pdev->dev); |
7812 | |||
7813 | return stats; | ||
7814 | } | 7812 | } |
7815 | 7813 | ||
7816 | static void rtl8169_net_suspend(struct net_device *dev) | 7814 | static void rtl8169_net_suspend(struct net_device *dev) |
diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c index cddcff5a00a7..07074d9bc45d 100644 --- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | |||
@@ -1706,11 +1706,9 @@ static inline u64 sxgbe_get_stat64(void __iomem *ioaddr, int reg_lo, int reg_hi) | |||
1706 | * This function is a driver entry point whenever ifconfig command gets | 1706 | * This function is a driver entry point whenever ifconfig command gets |
1707 | * executed to see device statistics. Statistics are number of | 1707 | * executed to see device statistics. Statistics are number of |
1708 | * bytes sent or received, errors occurred etc. | 1708 | * bytes sent or received, errors occurred etc. |
1709 | * Return value: | ||
1710 | * This function returns various statistical information of device. | ||
1711 | */ | 1709 | */ |
1712 | static struct rtnl_link_stats64 *sxgbe_get_stats64(struct net_device *dev, | 1710 | static void sxgbe_get_stats64(struct net_device *dev, |
1713 | struct rtnl_link_stats64 *stats) | 1711 | struct rtnl_link_stats64 *stats) |
1714 | { | 1712 | { |
1715 | struct sxgbe_priv_data *priv = netdev_priv(dev); | 1713 | struct sxgbe_priv_data *priv = netdev_priv(dev); |
1716 | void __iomem *ioaddr = priv->ioaddr; | 1714 | void __iomem *ioaddr = priv->ioaddr; |
@@ -1761,8 +1759,6 @@ static struct rtnl_link_stats64 *sxgbe_get_stats64(struct net_device *dev, | |||
1761 | SXGBE_MMC_TXUFLWHI_GBCNT_REG); | 1759 | SXGBE_MMC_TXUFLWHI_GBCNT_REG); |
1762 | writel(0, ioaddr + SXGBE_MMC_CTL_REG); | 1760 | writel(0, ioaddr + SXGBE_MMC_CTL_REG); |
1763 | spin_unlock(&priv->stats_lock); | 1761 | spin_unlock(&priv->stats_lock); |
1764 | |||
1765 | return stats; | ||
1766 | } | 1762 | } |
1767 | 1763 | ||
1768 | /* sxgbe_set_features - entry point to set offload features of the device. | 1764 | /* sxgbe_set_features - entry point to set offload features of the device. |
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index bbbed2e84de8..ebeecb8fed45 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c | |||
@@ -2219,16 +2219,14 @@ int efx_net_stop(struct net_device *net_dev) | |||
2219 | } | 2219 | } |
2220 | 2220 | ||
2221 | /* Context: process, dev_base_lock or RTNL held, non-blocking. */ | 2221 | /* Context: process, dev_base_lock or RTNL held, non-blocking. */ |
2222 | static struct rtnl_link_stats64 *efx_net_stats(struct net_device *net_dev, | 2222 | static void efx_net_stats(struct net_device *net_dev, |
2223 | struct rtnl_link_stats64 *stats) | 2223 | struct rtnl_link_stats64 *stats) |
2224 | { | 2224 | { |
2225 | struct efx_nic *efx = netdev_priv(net_dev); | 2225 | struct efx_nic *efx = netdev_priv(net_dev); |
2226 | 2226 | ||
2227 | spin_lock_bh(&efx->stats_lock); | 2227 | spin_lock_bh(&efx->stats_lock); |
2228 | efx->type->update_stats(efx, NULL, stats); | 2228 | efx->type->update_stats(efx, NULL, stats); |
2229 | spin_unlock_bh(&efx->stats_lock); | 2229 | spin_unlock_bh(&efx->stats_lock); |
2230 | |||
2231 | return stats; | ||
2232 | } | 2230 | } |
2233 | 2231 | ||
2234 | /* Context: netif_tx_lock held, BHs disabled. */ | 2232 | /* Context: netif_tx_lock held, BHs disabled. */ |
diff --git a/drivers/net/ethernet/sfc/falcon/efx.c b/drivers/net/ethernet/sfc/falcon/efx.c index ec3ac0e45cc9..8cfbe01e1ddf 100644 --- a/drivers/net/ethernet/sfc/falcon/efx.c +++ b/drivers/net/ethernet/sfc/falcon/efx.c | |||
@@ -2158,16 +2158,14 @@ int ef4_net_stop(struct net_device *net_dev) | |||
2158 | } | 2158 | } |
2159 | 2159 | ||
2160 | /* Context: process, dev_base_lock or RTNL held, non-blocking. */ | 2160 | /* Context: process, dev_base_lock or RTNL held, non-blocking. */ |
2161 | static struct rtnl_link_stats64 *ef4_net_stats(struct net_device *net_dev, | 2161 | static void ef4_net_stats(struct net_device *net_dev, |
2162 | struct rtnl_link_stats64 *stats) | 2162 | struct rtnl_link_stats64 *stats) |
2163 | { | 2163 | { |
2164 | struct ef4_nic *efx = netdev_priv(net_dev); | 2164 | struct ef4_nic *efx = netdev_priv(net_dev); |
2165 | 2165 | ||
2166 | spin_lock_bh(&efx->stats_lock); | 2166 | spin_lock_bh(&efx->stats_lock); |
2167 | efx->type->update_stats(efx, NULL, stats); | 2167 | efx->type->update_stats(efx, NULL, stats); |
2168 | spin_unlock_bh(&efx->stats_lock); | 2168 | spin_unlock_bh(&efx->stats_lock); |
2169 | |||
2170 | return stats; | ||
2171 | } | 2169 | } |
2172 | 2170 | ||
2173 | /* Context: netif_tx_lock held, BHs disabled. */ | 2171 | /* Context: netif_tx_lock held, BHs disabled. */ |
diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c index f90d1af6d390..e557a3290a25 100644 --- a/drivers/net/ethernet/sun/niu.c +++ b/drivers/net/ethernet/sun/niu.c | |||
@@ -6294,8 +6294,8 @@ no_rings: | |||
6294 | stats->tx_errors = errors; | 6294 | stats->tx_errors = errors; |
6295 | } | 6295 | } |
6296 | 6296 | ||
6297 | static struct rtnl_link_stats64 *niu_get_stats(struct net_device *dev, | 6297 | static void niu_get_stats(struct net_device *dev, |
6298 | struct rtnl_link_stats64 *stats) | 6298 | struct rtnl_link_stats64 *stats) |
6299 | { | 6299 | { |
6300 | struct niu *np = netdev_priv(dev); | 6300 | struct niu *np = netdev_priv(dev); |
6301 | 6301 | ||
@@ -6303,8 +6303,6 @@ static struct rtnl_link_stats64 *niu_get_stats(struct net_device *dev, | |||
6303 | niu_get_rx_stats(np, stats); | 6303 | niu_get_rx_stats(np, stats); |
6304 | niu_get_tx_stats(np, stats); | 6304 | niu_get_tx_stats(np, stats); |
6305 | } | 6305 | } |
6306 | |||
6307 | return stats; | ||
6308 | } | 6306 | } |
6309 | 6307 | ||
6310 | static void niu_load_hash_xmac(struct niu *np, u16 *hash) | 6308 | static void niu_load_hash_xmac(struct niu *np, u16 *hash) |
diff --git a/drivers/net/ethernet/synopsys/dwc_eth_qos.c b/drivers/net/ethernet/synopsys/dwc_eth_qos.c index 09f5a67da35e..467dcc53f5e1 100644 --- a/drivers/net/ethernet/synopsys/dwc_eth_qos.c +++ b/drivers/net/ethernet/synopsys/dwc_eth_qos.c | |||
@@ -2490,7 +2490,7 @@ static void dwceqos_read_mmc_counters(struct net_local *lp, u32 rx_mask, | |||
2490 | dwceqos_read(lp, DWC_MMC_RXPACKETCOUNT_GB); | 2490 | dwceqos_read(lp, DWC_MMC_RXPACKETCOUNT_GB); |
2491 | } | 2491 | } |
2492 | 2492 | ||
2493 | static struct rtnl_link_stats64* | 2493 | static void |
2494 | dwceqos_get_stats64(struct net_device *ndev, struct rtnl_link_stats64 *s) | 2494 | dwceqos_get_stats64(struct net_device *ndev, struct rtnl_link_stats64 *s) |
2495 | { | 2495 | { |
2496 | unsigned long flags; | 2496 | unsigned long flags; |
@@ -2522,8 +2522,6 @@ dwceqos_get_stats64(struct net_device *ndev, struct rtnl_link_stats64 *s) | |||
2522 | else | 2522 | else |
2523 | s->tx_errors = hwstats->txunderflowerror + | 2523 | s->tx_errors = hwstats->txunderflowerror + |
2524 | hwstats->txcarriererror; | 2524 | hwstats->txcarriererror; |
2525 | |||
2526 | return s; | ||
2527 | } | 2525 | } |
2528 | 2526 | ||
2529 | static void | 2527 | static void |
diff --git a/drivers/net/ethernet/tile/tilepro.c b/drivers/net/ethernet/tile/tilepro.c index 0a3b7dafa3ba..30cfea62a356 100644 --- a/drivers/net/ethernet/tile/tilepro.c +++ b/drivers/net/ethernet/tile/tilepro.c | |||
@@ -2047,8 +2047,8 @@ static int tile_net_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
2047 | * | 2047 | * |
2048 | * Returns the address of the device statistics structure. | 2048 | * Returns the address of the device statistics structure. |
2049 | */ | 2049 | */ |
2050 | static struct rtnl_link_stats64 *tile_net_get_stats64(struct net_device *dev, | 2050 | static void tile_net_get_stats64(struct net_device *dev, |
2051 | struct rtnl_link_stats64 *stats) | 2051 | struct rtnl_link_stats64 *stats) |
2052 | { | 2052 | { |
2053 | struct tile_net_priv *priv = netdev_priv(dev); | 2053 | struct tile_net_priv *priv = netdev_priv(dev); |
2054 | u64 rx_packets = 0, tx_packets = 0; | 2054 | u64 rx_packets = 0, tx_packets = 0; |
diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c index 0a6c4e804eed..453a1fad560c 100644 --- a/drivers/net/ethernet/via/via-rhine.c +++ b/drivers/net/ethernet/via/via-rhine.c | |||
@@ -513,8 +513,8 @@ static irqreturn_t rhine_interrupt(int irq, void *dev_instance); | |||
513 | static void rhine_tx(struct net_device *dev); | 513 | static void rhine_tx(struct net_device *dev); |
514 | static int rhine_rx(struct net_device *dev, int limit); | 514 | static int rhine_rx(struct net_device *dev, int limit); |
515 | static void rhine_set_rx_mode(struct net_device *dev); | 515 | static void rhine_set_rx_mode(struct net_device *dev); |
516 | static struct rtnl_link_stats64 *rhine_get_stats64(struct net_device *dev, | 516 | static void rhine_get_stats64(struct net_device *dev, |
517 | struct rtnl_link_stats64 *stats); | 517 | struct rtnl_link_stats64 *stats); |
518 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); | 518 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); |
519 | static const struct ethtool_ops netdev_ethtool_ops; | 519 | static const struct ethtool_ops netdev_ethtool_ops; |
520 | static int rhine_close(struct net_device *dev); | 520 | static int rhine_close(struct net_device *dev); |
@@ -2221,7 +2221,7 @@ out_unlock: | |||
2221 | mutex_unlock(&rp->task_lock); | 2221 | mutex_unlock(&rp->task_lock); |
2222 | } | 2222 | } |
2223 | 2223 | ||
2224 | static struct rtnl_link_stats64 * | 2224 | static void |
2225 | rhine_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 2225 | rhine_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
2226 | { | 2226 | { |
2227 | struct rhine_private *rp = netdev_priv(dev); | 2227 | struct rhine_private *rp = netdev_priv(dev); |
@@ -2244,8 +2244,6 @@ rhine_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
2244 | stats->tx_packets = rp->tx_stats.packets; | 2244 | stats->tx_packets = rp->tx_stats.packets; |
2245 | stats->tx_bytes = rp->tx_stats.bytes; | 2245 | stats->tx_bytes = rp->tx_stats.bytes; |
2246 | } while (u64_stats_fetch_retry_irq(&rp->tx_stats.syncp, start)); | 2246 | } while (u64_stats_fetch_retry_irq(&rp->tx_stats.syncp, start)); |
2247 | |||
2248 | return stats; | ||
2249 | } | 2247 | } |
2250 | 2248 | ||
2251 | static void rhine_set_rx_mode(struct net_device *dev) | 2249 | static void rhine_set_rx_mode(struct net_device *dev) |
diff --git a/drivers/net/fjes/fjes_main.c b/drivers/net/fjes/fjes_main.c index b77e4ecf3cf2..5028001429c7 100644 --- a/drivers/net/fjes/fjes_main.c +++ b/drivers/net/fjes/fjes_main.c | |||
@@ -57,8 +57,7 @@ static void fjes_raise_intr_rxdata_task(struct work_struct *); | |||
57 | static void fjes_tx_stall_task(struct work_struct *); | 57 | static void fjes_tx_stall_task(struct work_struct *); |
58 | static void fjes_force_close_task(struct work_struct *); | 58 | static void fjes_force_close_task(struct work_struct *); |
59 | static irqreturn_t fjes_intr(int, void*); | 59 | static irqreturn_t fjes_intr(int, void*); |
60 | static struct rtnl_link_stats64 * | 60 | static void fjes_get_stats64(struct net_device *, struct rtnl_link_stats64 *); |
61 | fjes_get_stats64(struct net_device *, struct rtnl_link_stats64 *); | ||
62 | static int fjes_change_mtu(struct net_device *, int); | 61 | static int fjes_change_mtu(struct net_device *, int); |
63 | static int fjes_vlan_rx_add_vid(struct net_device *, __be16 proto, u16); | 62 | static int fjes_vlan_rx_add_vid(struct net_device *, __be16 proto, u16); |
64 | static int fjes_vlan_rx_kill_vid(struct net_device *, __be16 proto, u16); | 63 | static int fjes_vlan_rx_kill_vid(struct net_device *, __be16 proto, u16); |
@@ -782,14 +781,12 @@ static void fjes_tx_retry(struct net_device *netdev) | |||
782 | netif_tx_wake_queue(queue); | 781 | netif_tx_wake_queue(queue); |
783 | } | 782 | } |
784 | 783 | ||
785 | static struct rtnl_link_stats64 * | 784 | static void |
786 | fjes_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats) | 785 | fjes_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats) |
787 | { | 786 | { |
788 | struct fjes_adapter *adapter = netdev_priv(netdev); | 787 | struct fjes_adapter *adapter = netdev_priv(netdev); |
789 | 788 | ||
790 | memcpy(stats, &adapter->stats64, sizeof(struct rtnl_link_stats64)); | 789 | memcpy(stats, &adapter->stats64, sizeof(struct rtnl_link_stats64)); |
791 | |||
792 | return stats; | ||
793 | } | 790 | } |
794 | 791 | ||
795 | static int fjes_change_mtu(struct net_device *netdev, int new_mtu) | 792 | static int fjes_change_mtu(struct net_device *netdev, int new_mtu) |
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index c9414c054852..05374fce7da4 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c | |||
@@ -908,8 +908,8 @@ out: | |||
908 | return ret; | 908 | return ret; |
909 | } | 909 | } |
910 | 910 | ||
911 | static struct rtnl_link_stats64 *netvsc_get_stats64(struct net_device *net, | 911 | static void netvsc_get_stats64(struct net_device *net, |
912 | struct rtnl_link_stats64 *t) | 912 | struct rtnl_link_stats64 *t) |
913 | { | 913 | { |
914 | struct net_device_context *ndev_ctx = netdev_priv(net); | 914 | struct net_device_context *ndev_ctx = netdev_priv(net); |
915 | int cpu; | 915 | int cpu; |
@@ -947,8 +947,6 @@ static struct rtnl_link_stats64 *netvsc_get_stats64(struct net_device *net, | |||
947 | 947 | ||
948 | t->rx_dropped = net->stats.rx_dropped; | 948 | t->rx_dropped = net->stats.rx_dropped; |
949 | t->rx_errors = net->stats.rx_errors; | 949 | t->rx_errors = net->stats.rx_errors; |
950 | |||
951 | return t; | ||
952 | } | 950 | } |
953 | 951 | ||
954 | static int netvsc_set_mac_addr(struct net_device *ndev, void *p) | 952 | static int netvsc_set_mac_addr(struct net_device *ndev, void *p) |
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c index 66c0eeafcb5d..082534e187fc 100644 --- a/drivers/net/ifb.c +++ b/drivers/net/ifb.c | |||
@@ -129,8 +129,8 @@ resched: | |||
129 | 129 | ||
130 | } | 130 | } |
131 | 131 | ||
132 | static struct rtnl_link_stats64 *ifb_stats64(struct net_device *dev, | 132 | static void ifb_stats64(struct net_device *dev, |
133 | struct rtnl_link_stats64 *stats) | 133 | struct rtnl_link_stats64 *stats) |
134 | { | 134 | { |
135 | struct ifb_dev_private *dp = netdev_priv(dev); | 135 | struct ifb_dev_private *dp = netdev_priv(dev); |
136 | struct ifb_q_private *txp = dp->tx_private; | 136 | struct ifb_q_private *txp = dp->tx_private; |
@@ -157,8 +157,6 @@ static struct rtnl_link_stats64 *ifb_stats64(struct net_device *dev, | |||
157 | } | 157 | } |
158 | stats->rx_dropped = dev->stats.rx_dropped; | 158 | stats->rx_dropped = dev->stats.rx_dropped; |
159 | stats->tx_dropped = dev->stats.tx_dropped; | 159 | stats->tx_dropped = dev->stats.tx_dropped; |
160 | |||
161 | return stats; | ||
162 | } | 160 | } |
163 | 161 | ||
164 | static int ifb_dev_init(struct net_device *dev) | 162 | static int ifb_dev_init(struct net_device *dev) |
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c index ce7ca6a5aa8a..1cdb8c5ec403 100644 --- a/drivers/net/ipvlan/ipvlan_main.c +++ b/drivers/net/ipvlan/ipvlan_main.c | |||
@@ -303,8 +303,8 @@ static void ipvlan_set_multicast_mac_filter(struct net_device *dev) | |||
303 | dev_mc_sync(ipvlan->phy_dev, dev); | 303 | dev_mc_sync(ipvlan->phy_dev, dev); |
304 | } | 304 | } |
305 | 305 | ||
306 | static struct rtnl_link_stats64 *ipvlan_get_stats64(struct net_device *dev, | 306 | static void ipvlan_get_stats64(struct net_device *dev, |
307 | struct rtnl_link_stats64 *s) | 307 | struct rtnl_link_stats64 *s) |
308 | { | 308 | { |
309 | struct ipvl_dev *ipvlan = netdev_priv(dev); | 309 | struct ipvl_dev *ipvlan = netdev_priv(dev); |
310 | 310 | ||
@@ -341,7 +341,6 @@ static struct rtnl_link_stats64 *ipvlan_get_stats64(struct net_device *dev, | |||
341 | s->rx_dropped = rx_errs; | 341 | s->rx_dropped = rx_errs; |
342 | s->tx_dropped = tx_drps; | 342 | s->tx_dropped = tx_drps; |
343 | } | 343 | } |
344 | return s; | ||
345 | } | 344 | } |
346 | 345 | ||
347 | static int ipvlan_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid) | 346 | static int ipvlan_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid) |
diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c index 1e05b7c2d157..30a493936e63 100644 --- a/drivers/net/loopback.c +++ b/drivers/net/loopback.c | |||
@@ -97,8 +97,8 @@ static netdev_tx_t loopback_xmit(struct sk_buff *skb, | |||
97 | return NETDEV_TX_OK; | 97 | return NETDEV_TX_OK; |
98 | } | 98 | } |
99 | 99 | ||
100 | static struct rtnl_link_stats64 *loopback_get_stats64(struct net_device *dev, | 100 | static void loopback_get_stats64(struct net_device *dev, |
101 | struct rtnl_link_stats64 *stats) | 101 | struct rtnl_link_stats64 *stats) |
102 | { | 102 | { |
103 | u64 bytes = 0; | 103 | u64 bytes = 0; |
104 | u64 packets = 0; | 104 | u64 packets = 0; |
@@ -122,7 +122,6 @@ static struct rtnl_link_stats64 *loopback_get_stats64(struct net_device *dev, | |||
122 | stats->tx_packets = packets; | 122 | stats->tx_packets = packets; |
123 | stats->rx_bytes = bytes; | 123 | stats->rx_bytes = bytes; |
124 | stats->tx_bytes = bytes; | 124 | stats->tx_bytes = bytes; |
125 | return stats; | ||
126 | } | 125 | } |
127 | 126 | ||
128 | static u32 always_on(struct net_device *dev) | 127 | static u32 always_on(struct net_device *dev) |
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c index f83cf6696820..778a77303c49 100644 --- a/drivers/net/macsec.c +++ b/drivers/net/macsec.c | |||
@@ -2888,13 +2888,13 @@ static int macsec_change_mtu(struct net_device *dev, int new_mtu) | |||
2888 | return 0; | 2888 | return 0; |
2889 | } | 2889 | } |
2890 | 2890 | ||
2891 | static struct rtnl_link_stats64 *macsec_get_stats64(struct net_device *dev, | 2891 | static void macsec_get_stats64(struct net_device *dev, |
2892 | struct rtnl_link_stats64 *s) | 2892 | struct rtnl_link_stats64 *s) |
2893 | { | 2893 | { |
2894 | int cpu; | 2894 | int cpu; |
2895 | 2895 | ||
2896 | if (!dev->tstats) | 2896 | if (!dev->tstats) |
2897 | return s; | 2897 | return; |
2898 | 2898 | ||
2899 | for_each_possible_cpu(cpu) { | 2899 | for_each_possible_cpu(cpu) { |
2900 | struct pcpu_sw_netstats *stats; | 2900 | struct pcpu_sw_netstats *stats; |
@@ -2918,8 +2918,6 @@ static struct rtnl_link_stats64 *macsec_get_stats64(struct net_device *dev, | |||
2918 | 2918 | ||
2919 | s->rx_dropped = dev->stats.rx_dropped; | 2919 | s->rx_dropped = dev->stats.rx_dropped; |
2920 | s->tx_dropped = dev->stats.tx_dropped; | 2920 | s->tx_dropped = dev->stats.tx_dropped; |
2921 | |||
2922 | return s; | ||
2923 | } | 2921 | } |
2924 | 2922 | ||
2925 | static int macsec_get_iflink(const struct net_device *dev) | 2923 | static int macsec_get_iflink(const struct net_device *dev) |
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 20b3fdf282c5..440ab3d8adf7 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c | |||
@@ -855,8 +855,8 @@ static void macvlan_uninit(struct net_device *dev) | |||
855 | macvlan_port_destroy(port->dev); | 855 | macvlan_port_destroy(port->dev); |
856 | } | 856 | } |
857 | 857 | ||
858 | static struct rtnl_link_stats64 *macvlan_dev_get_stats64(struct net_device *dev, | 858 | static void macvlan_dev_get_stats64(struct net_device *dev, |
859 | struct rtnl_link_stats64 *stats) | 859 | struct rtnl_link_stats64 *stats) |
860 | { | 860 | { |
861 | struct macvlan_dev *vlan = netdev_priv(dev); | 861 | struct macvlan_dev *vlan = netdev_priv(dev); |
862 | 862 | ||
@@ -893,7 +893,6 @@ static struct rtnl_link_stats64 *macvlan_dev_get_stats64(struct net_device *dev, | |||
893 | stats->rx_dropped = rx_errors; | 893 | stats->rx_dropped = rx_errors; |
894 | stats->tx_dropped = tx_dropped; | 894 | stats->tx_dropped = tx_dropped; |
895 | } | 895 | } |
896 | return stats; | ||
897 | } | 896 | } |
898 | 897 | ||
899 | static int macvlan_vlan_rx_add_vid(struct net_device *dev, | 898 | static int macvlan_vlan_rx_add_vid(struct net_device *dev, |
diff --git a/drivers/net/nlmon.c b/drivers/net/nlmon.c index 2de7faee9b19..b91603835d26 100644 --- a/drivers/net/nlmon.c +++ b/drivers/net/nlmon.c | |||
@@ -58,7 +58,7 @@ static int nlmon_close(struct net_device *dev) | |||
58 | return netlink_remove_tap(&nlmon->nt); | 58 | return netlink_remove_tap(&nlmon->nt); |
59 | } | 59 | } |
60 | 60 | ||
61 | static struct rtnl_link_stats64 * | 61 | static void |
62 | nlmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 62 | nlmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
63 | { | 63 | { |
64 | int i; | 64 | int i; |
@@ -86,8 +86,6 @@ nlmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
86 | 86 | ||
87 | stats->rx_bytes = bytes; | 87 | stats->rx_bytes = bytes; |
88 | stats->tx_bytes = 0; | 88 | stats->tx_bytes = 0; |
89 | |||
90 | return stats; | ||
91 | } | 89 | } |
92 | 90 | ||
93 | static u32 always_on(struct net_device *dev) | 91 | static u32 always_on(struct net_device *dev) |
diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index 3d3b1f4339ef..a411b43a69eb 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c | |||
@@ -1297,7 +1297,7 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) | |||
1297 | return err; | 1297 | return err; |
1298 | } | 1298 | } |
1299 | 1299 | ||
1300 | static struct rtnl_link_stats64* | 1300 | static void |
1301 | ppp_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats64) | 1301 | ppp_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats64) |
1302 | { | 1302 | { |
1303 | struct ppp *ppp = netdev_priv(dev); | 1303 | struct ppp *ppp = netdev_priv(dev); |
@@ -1317,8 +1317,6 @@ ppp_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats64) | |||
1317 | stats64->rx_dropped = dev->stats.rx_dropped; | 1317 | stats64->rx_dropped = dev->stats.rx_dropped; |
1318 | stats64->tx_dropped = dev->stats.tx_dropped; | 1318 | stats64->tx_dropped = dev->stats.tx_dropped; |
1319 | stats64->rx_length_errors = dev->stats.rx_length_errors; | 1319 | stats64->rx_length_errors = dev->stats.rx_length_errors; |
1320 | |||
1321 | return stats64; | ||
1322 | } | 1320 | } |
1323 | 1321 | ||
1324 | static int ppp_dev_init(struct net_device *dev) | 1322 | static int ppp_dev_init(struct net_device *dev) |
diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c index 9841f3dc0682..08db4d687533 100644 --- a/drivers/net/slip/slip.c +++ b/drivers/net/slip/slip.c | |||
@@ -566,7 +566,7 @@ static int sl_change_mtu(struct net_device *dev, int new_mtu) | |||
566 | 566 | ||
567 | /* Netdevice get statistics request */ | 567 | /* Netdevice get statistics request */ |
568 | 568 | ||
569 | static struct rtnl_link_stats64 * | 569 | static void |
570 | sl_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 570 | sl_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
571 | { | 571 | { |
572 | struct net_device_stats *devstats = &dev->stats; | 572 | struct net_device_stats *devstats = &dev->stats; |
@@ -597,7 +597,6 @@ sl_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
597 | stats->collisions += comp->sls_o_misses; | 597 | stats->collisions += comp->sls_o_misses; |
598 | } | 598 | } |
599 | #endif | 599 | #endif |
600 | return stats; | ||
601 | } | 600 | } |
602 | 601 | ||
603 | /* Netdevice register callback */ | 602 | /* Netdevice register callback */ |
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index bdc58567d10e..a3711769544b 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c | |||
@@ -1798,7 +1798,7 @@ unwind: | |||
1798 | return err; | 1798 | return err; |
1799 | } | 1799 | } |
1800 | 1800 | ||
1801 | static struct rtnl_link_stats64 * | 1801 | static void |
1802 | team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 1802 | team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
1803 | { | 1803 | { |
1804 | struct team *team = netdev_priv(dev); | 1804 | struct team *team = netdev_priv(dev); |
@@ -1835,7 +1835,6 @@ team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
1835 | stats->rx_dropped = rx_dropped; | 1835 | stats->rx_dropped = rx_dropped; |
1836 | stats->tx_dropped = tx_dropped; | 1836 | stats->tx_dropped = tx_dropped; |
1837 | stats->rx_nohandler = rx_nohandler; | 1837 | stats->rx_nohandler = rx_nohandler; |
1838 | return stats; | ||
1839 | } | 1838 | } |
1840 | 1839 | ||
1841 | static int team_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid) | 1840 | static int team_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid) |
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index cd8e02c94be0..8c1d3bd6b4d0 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c | |||
@@ -953,7 +953,7 @@ static void tun_set_headroom(struct net_device *dev, int new_hr) | |||
953 | tun->align = new_hr; | 953 | tun->align = new_hr; |
954 | } | 954 | } |
955 | 955 | ||
956 | static struct rtnl_link_stats64 * | 956 | static void |
957 | tun_net_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 957 | tun_net_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
958 | { | 958 | { |
959 | u32 rx_dropped = 0, tx_dropped = 0, rx_frame_errors = 0; | 959 | u32 rx_dropped = 0, tx_dropped = 0, rx_frame_errors = 0; |
@@ -987,7 +987,6 @@ tun_net_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
987 | stats->rx_dropped = rx_dropped; | 987 | stats->rx_dropped = rx_dropped; |
988 | stats->rx_frame_errors = rx_frame_errors; | 988 | stats->rx_frame_errors = rx_frame_errors; |
989 | stats->tx_dropped = tx_dropped; | 989 | stats->tx_dropped = tx_dropped; |
990 | return stats; | ||
991 | } | 990 | } |
992 | 991 | ||
993 | static const struct net_device_ops tun_netdev_ops = { | 992 | static const struct net_device_ops tun_netdev_ops = { |
diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 0520952aa096..8c39d6d690e5 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c | |||
@@ -158,8 +158,8 @@ static u64 veth_stats_one(struct pcpu_vstats *result, struct net_device *dev) | |||
158 | return atomic64_read(&priv->dropped); | 158 | return atomic64_read(&priv->dropped); |
159 | } | 159 | } |
160 | 160 | ||
161 | static struct rtnl_link_stats64 *veth_get_stats64(struct net_device *dev, | 161 | static void veth_get_stats64(struct net_device *dev, |
162 | struct rtnl_link_stats64 *tot) | 162 | struct rtnl_link_stats64 *tot) |
163 | { | 163 | { |
164 | struct veth_priv *priv = netdev_priv(dev); | 164 | struct veth_priv *priv = netdev_priv(dev); |
165 | struct net_device *peer; | 165 | struct net_device *peer; |
@@ -177,8 +177,6 @@ static struct rtnl_link_stats64 *veth_get_stats64(struct net_device *dev, | |||
177 | tot->rx_packets = one.packets; | 177 | tot->rx_packets = one.packets; |
178 | } | 178 | } |
179 | rcu_read_unlock(); | 179 | rcu_read_unlock(); |
180 | |||
181 | return tot; | ||
182 | } | 180 | } |
183 | 181 | ||
184 | /* fake multicast ability */ | 182 | /* fake multicast ability */ |
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 2cea022e6e6e..37db91d1a0a3 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
@@ -1272,8 +1272,8 @@ out: | |||
1272 | return ret; | 1272 | return ret; |
1273 | } | 1273 | } |
1274 | 1274 | ||
1275 | static struct rtnl_link_stats64 *virtnet_stats(struct net_device *dev, | 1275 | static void virtnet_stats(struct net_device *dev, |
1276 | struct rtnl_link_stats64 *tot) | 1276 | struct rtnl_link_stats64 *tot) |
1277 | { | 1277 | { |
1278 | struct virtnet_info *vi = netdev_priv(dev); | 1278 | struct virtnet_info *vi = netdev_priv(dev); |
1279 | int cpu; | 1279 | int cpu; |
@@ -1306,8 +1306,6 @@ static struct rtnl_link_stats64 *virtnet_stats(struct net_device *dev, | |||
1306 | tot->rx_dropped = dev->stats.rx_dropped; | 1306 | tot->rx_dropped = dev->stats.rx_dropped; |
1307 | tot->rx_length_errors = dev->stats.rx_length_errors; | 1307 | tot->rx_length_errors = dev->stats.rx_length_errors; |
1308 | tot->rx_frame_errors = dev->stats.rx_frame_errors; | 1308 | tot->rx_frame_errors = dev->stats.rx_frame_errors; |
1309 | |||
1310 | return tot; | ||
1311 | } | 1309 | } |
1312 | 1310 | ||
1313 | #ifdef CONFIG_NET_POLL_CONTROLLER | 1311 | #ifdef CONFIG_NET_POLL_CONTROLLER |
diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c index aabc6ef366b4..f88ffafebfbf 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c | |||
@@ -113,7 +113,7 @@ vmxnet3_global_stats[] = { | |||
113 | }; | 113 | }; |
114 | 114 | ||
115 | 115 | ||
116 | struct rtnl_link_stats64 * | 116 | void |
117 | vmxnet3_get_stats64(struct net_device *netdev, | 117 | vmxnet3_get_stats64(struct net_device *netdev, |
118 | struct rtnl_link_stats64 *stats) | 118 | struct rtnl_link_stats64 *stats) |
119 | { | 119 | { |
@@ -160,8 +160,6 @@ vmxnet3_get_stats64(struct net_device *netdev, | |||
160 | stats->rx_dropped += drvRxStats->drop_total; | 160 | stats->rx_dropped += drvRxStats->drop_total; |
161 | stats->multicast += devRxStats->mcastPktsRxOK; | 161 | stats->multicast += devRxStats->mcastPktsRxOK; |
162 | } | 162 | } |
163 | |||
164 | return stats; | ||
165 | } | 163 | } |
166 | 164 | ||
167 | static int | 165 | static int |
diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h index 59e077be8829..ba1c9f93592b 100644 --- a/drivers/net/vmxnet3/vmxnet3_int.h +++ b/drivers/net/vmxnet3/vmxnet3_int.h | |||
@@ -465,8 +465,8 @@ vmxnet3_create_queues(struct vmxnet3_adapter *adapter, | |||
465 | 465 | ||
466 | void vmxnet3_set_ethtool_ops(struct net_device *netdev); | 466 | void vmxnet3_set_ethtool_ops(struct net_device *netdev); |
467 | 467 | ||
468 | struct rtnl_link_stats64 * | 468 | void vmxnet3_get_stats64(struct net_device *dev, |
469 | vmxnet3_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats); | 469 | struct rtnl_link_stats64 *stats); |
470 | 470 | ||
471 | extern char vmxnet3_driver_name[]; | 471 | extern char vmxnet3_driver_name[]; |
472 | #endif | 472 | #endif |
diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index 23dfb0eac098..895e3e258543 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c | |||
@@ -77,8 +77,8 @@ static void vrf_tx_error(struct net_device *vrf_dev, struct sk_buff *skb) | |||
77 | kfree_skb(skb); | 77 | kfree_skb(skb); |
78 | } | 78 | } |
79 | 79 | ||
80 | static struct rtnl_link_stats64 *vrf_get_stats64(struct net_device *dev, | 80 | static void vrf_get_stats64(struct net_device *dev, |
81 | struct rtnl_link_stats64 *stats) | 81 | struct rtnl_link_stats64 *stats) |
82 | { | 82 | { |
83 | int i; | 83 | int i; |
84 | 84 | ||
@@ -102,7 +102,6 @@ static struct rtnl_link_stats64 *vrf_get_stats64(struct net_device *dev, | |||
102 | stats->rx_bytes += rbytes; | 102 | stats->rx_bytes += rbytes; |
103 | stats->rx_packets += rpkts; | 103 | stats->rx_packets += rpkts; |
104 | } | 104 | } |
105 | return stats; | ||
106 | } | 105 | } |
107 | 106 | ||
108 | /* Local traffic destined to local address. Reinsert the packet to rx | 107 | /* Local traffic destined to local address. Reinsert the packet to rx |
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index a479cd99911d..40f26b69beb1 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c | |||
@@ -1073,8 +1073,8 @@ static int xennet_change_mtu(struct net_device *dev, int mtu) | |||
1073 | return 0; | 1073 | return 0; |
1074 | } | 1074 | } |
1075 | 1075 | ||
1076 | static struct rtnl_link_stats64 *xennet_get_stats64(struct net_device *dev, | 1076 | static void xennet_get_stats64(struct net_device *dev, |
1077 | struct rtnl_link_stats64 *tot) | 1077 | struct rtnl_link_stats64 *tot) |
1078 | { | 1078 | { |
1079 | struct netfront_info *np = netdev_priv(dev); | 1079 | struct netfront_info *np = netdev_priv(dev); |
1080 | int cpu; | 1080 | int cpu; |
@@ -1105,8 +1105,6 @@ static struct rtnl_link_stats64 *xennet_get_stats64(struct net_device *dev, | |||
1105 | 1105 | ||
1106 | tot->rx_errors = dev->stats.rx_errors; | 1106 | tot->rx_errors = dev->stats.rx_errors; |
1107 | tot->tx_dropped = dev->stats.tx_dropped; | 1107 | tot->tx_dropped = dev->stats.tx_dropped; |
1108 | |||
1109 | return tot; | ||
1110 | } | 1108 | } |
1111 | 1109 | ||
1112 | static void xennet_release_tx_bufs(struct netfront_queue *queue) | 1110 | static void xennet_release_tx_bufs(struct netfront_queue *queue) |
diff --git a/drivers/staging/netlogic/xlr_net.c b/drivers/staging/netlogic/xlr_net.c index fb0928a4fb97..f84069ffa8c6 100644 --- a/drivers/staging/netlogic/xlr_net.c +++ b/drivers/staging/netlogic/xlr_net.c | |||
@@ -397,14 +397,6 @@ static void xlr_stats(struct net_device *ndev, struct rtnl_link_stats64 *stats) | |||
397 | TX_DROP_FRAME_COUNTER); | 397 | TX_DROP_FRAME_COUNTER); |
398 | } | 398 | } |
399 | 399 | ||
400 | static struct rtnl_link_stats64 *xlr_get_stats64(struct net_device *ndev, | ||
401 | struct rtnl_link_stats64 *stats | ||
402 | ) | ||
403 | { | ||
404 | xlr_stats(ndev, stats); | ||
405 | return stats; | ||
406 | } | ||
407 | |||
408 | static const struct net_device_ops xlr_netdev_ops = { | 400 | static const struct net_device_ops xlr_netdev_ops = { |
409 | .ndo_open = xlr_net_open, | 401 | .ndo_open = xlr_net_open, |
410 | .ndo_stop = xlr_net_stop, | 402 | .ndo_stop = xlr_net_stop, |
@@ -412,7 +404,7 @@ static const struct net_device_ops xlr_netdev_ops = { | |||
412 | .ndo_select_queue = xlr_net_select_queue, | 404 | .ndo_select_queue = xlr_net_select_queue, |
413 | .ndo_set_mac_address = xlr_net_set_mac_addr, | 405 | .ndo_set_mac_address = xlr_net_set_mac_addr, |
414 | .ndo_set_rx_mode = xlr_set_rx_mode, | 406 | .ndo_set_rx_mode = xlr_set_rx_mode, |
415 | .ndo_get_stats64 = xlr_get_stats64, | 407 | .ndo_get_stats64 = xlr_stats, |
416 | }; | 408 | }; |
417 | 409 | ||
418 | /* | 410 | /* |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index ecd78b3c9aba..b14ad9c139d7 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -913,8 +913,8 @@ struct netdev_xdp { | |||
913 | * Callback used when the transmitter has not made any progress | 913 | * Callback used when the transmitter has not made any progress |
914 | * for dev->watchdog ticks. | 914 | * for dev->watchdog ticks. |
915 | * | 915 | * |
916 | * struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev, | 916 | * void (*ndo_get_stats64)(struct net_device *dev, |
917 | * struct rtnl_link_stats64 *storage); | 917 | * struct rtnl_link_stats64 *storage); |
918 | * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev); | 918 | * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev); |
919 | * Called when a user wants to get the network device usage | 919 | * Called when a user wants to get the network device usage |
920 | * statistics. Drivers must do one of the following: | 920 | * statistics. Drivers must do one of the following: |
@@ -1165,8 +1165,8 @@ struct net_device_ops { | |||
1165 | struct neigh_parms *); | 1165 | struct neigh_parms *); |
1166 | void (*ndo_tx_timeout) (struct net_device *dev); | 1166 | void (*ndo_tx_timeout) (struct net_device *dev); |
1167 | 1167 | ||
1168 | struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev, | 1168 | void (*ndo_get_stats64)(struct net_device *dev, |
1169 | struct rtnl_link_stats64 *storage); | 1169 | struct rtnl_link_stats64 *storage); |
1170 | bool (*ndo_has_offload_stats)(const struct net_device *dev, int attr_id); | 1170 | bool (*ndo_has_offload_stats)(const struct net_device *dev, int attr_id); |
1171 | int (*ndo_get_offload_stats)(int attr_id, | 1171 | int (*ndo_get_offload_stats)(int attr_id, |
1172 | const struct net_device *dev, | 1172 | const struct net_device *dev, |
diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index e893fe43dd13..3d4ca4df1209 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h | |||
@@ -261,8 +261,8 @@ int ip_tunnel_ioctl(struct net_device *dev, struct ip_tunnel_parm *p, int cmd); | |||
261 | int __ip_tunnel_change_mtu(struct net_device *dev, int new_mtu, bool strict); | 261 | int __ip_tunnel_change_mtu(struct net_device *dev, int new_mtu, bool strict); |
262 | int ip_tunnel_change_mtu(struct net_device *dev, int new_mtu); | 262 | int ip_tunnel_change_mtu(struct net_device *dev, int new_mtu); |
263 | 263 | ||
264 | struct rtnl_link_stats64 *ip_tunnel_get_stats64(struct net_device *dev, | 264 | void ip_tunnel_get_stats64(struct net_device *dev, |
265 | struct rtnl_link_stats64 *tot); | 265 | struct rtnl_link_stats64 *tot); |
266 | struct ip_tunnel *ip_tunnel_lookup(struct ip_tunnel_net *itn, | 266 | struct ip_tunnel *ip_tunnel_lookup(struct ip_tunnel_net *itn, |
267 | int link, __be16 flags, | 267 | int link, __be16 flags, |
268 | __be32 remote, __be32 local, | 268 | __be32 remote, __be32 local, |
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 10da6c588bf8..116455ac3db5 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -671,7 +671,8 @@ static int vlan_ethtool_get_ts_info(struct net_device *dev, | |||
671 | return 0; | 671 | return 0; |
672 | } | 672 | } |
673 | 673 | ||
674 | static struct rtnl_link_stats64 *vlan_dev_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 674 | static void vlan_dev_get_stats64(struct net_device *dev, |
675 | struct rtnl_link_stats64 *stats) | ||
675 | { | 676 | { |
676 | struct vlan_pcpu_stats *p; | 677 | struct vlan_pcpu_stats *p; |
677 | u32 rx_errors = 0, tx_dropped = 0; | 678 | u32 rx_errors = 0, tx_dropped = 0; |
@@ -702,8 +703,6 @@ static struct rtnl_link_stats64 *vlan_dev_get_stats64(struct net_device *dev, st | |||
702 | } | 703 | } |
703 | stats->rx_errors = rx_errors; | 704 | stats->rx_errors = rx_errors; |
704 | stats->tx_dropped = tx_dropped; | 705 | stats->tx_dropped = tx_dropped; |
705 | |||
706 | return stats; | ||
707 | } | 706 | } |
708 | 707 | ||
709 | #ifdef CONFIG_NET_POLL_CONTROLLER | 708 | #ifdef CONFIG_NET_POLL_CONTROLLER |
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index ed3b3192fb00..6c46d1b4cdbb 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c | |||
@@ -153,8 +153,8 @@ static int br_dev_stop(struct net_device *dev) | |||
153 | return 0; | 153 | return 0; |
154 | } | 154 | } |
155 | 155 | ||
156 | static struct rtnl_link_stats64 *br_get_stats64(struct net_device *dev, | 156 | static void br_get_stats64(struct net_device *dev, |
157 | struct rtnl_link_stats64 *stats) | 157 | struct rtnl_link_stats64 *stats) |
158 | { | 158 | { |
159 | struct net_bridge *br = netdev_priv(dev); | 159 | struct net_bridge *br = netdev_priv(dev); |
160 | struct pcpu_sw_netstats tmp, sum = { 0 }; | 160 | struct pcpu_sw_netstats tmp, sum = { 0 }; |
@@ -178,8 +178,6 @@ static struct rtnl_link_stats64 *br_get_stats64(struct net_device *dev, | |||
178 | stats->tx_packets = sum.tx_packets; | 178 | stats->tx_packets = sum.tx_packets; |
179 | stats->rx_bytes = sum.rx_bytes; | 179 | stats->rx_bytes = sum.rx_bytes; |
180 | stats->rx_packets = sum.rx_packets; | 180 | stats->rx_packets = sum.rx_packets; |
181 | |||
182 | return stats; | ||
183 | } | 181 | } |
184 | 182 | ||
185 | static int br_change_mtu(struct net_device *dev, int new_mtu) | 183 | static int br_change_mtu(struct net_device *dev, int new_mtu) |
diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c index fed3d29f9eb3..5476110598f7 100644 --- a/net/ipv4/ip_tunnel_core.c +++ b/net/ipv4/ip_tunnel_core.c | |||
@@ -188,8 +188,8 @@ int iptunnel_handle_offloads(struct sk_buff *skb, | |||
188 | EXPORT_SYMBOL_GPL(iptunnel_handle_offloads); | 188 | EXPORT_SYMBOL_GPL(iptunnel_handle_offloads); |
189 | 189 | ||
190 | /* Often modified stats are per cpu, other are shared (netdev->stats) */ | 190 | /* Often modified stats are per cpu, other are shared (netdev->stats) */ |
191 | struct rtnl_link_stats64 *ip_tunnel_get_stats64(struct net_device *dev, | 191 | void ip_tunnel_get_stats64(struct net_device *dev, |
192 | struct rtnl_link_stats64 *tot) | 192 | struct rtnl_link_stats64 *tot) |
193 | { | 193 | { |
194 | int i; | 194 | int i; |
195 | 195 | ||
@@ -214,8 +214,6 @@ struct rtnl_link_stats64 *ip_tunnel_get_stats64(struct net_device *dev, | |||
214 | tot->rx_bytes += rx_bytes; | 214 | tot->rx_bytes += rx_bytes; |
215 | tot->tx_bytes += tx_bytes; | 215 | tot->tx_bytes += tx_bytes; |
216 | } | 216 | } |
217 | |||
218 | return tot; | ||
219 | } | 217 | } |
220 | EXPORT_SYMBOL_GPL(ip_tunnel_get_stats64); | 218 | EXPORT_SYMBOL_GPL(ip_tunnel_get_stats64); |
221 | 219 | ||
diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c index e2c6ae024565..8bf18a5f66e0 100644 --- a/net/l2tp/l2tp_eth.c +++ b/net/l2tp/l2tp_eth.c | |||
@@ -106,8 +106,8 @@ static int l2tp_eth_dev_xmit(struct sk_buff *skb, struct net_device *dev) | |||
106 | return NETDEV_TX_OK; | 106 | return NETDEV_TX_OK; |
107 | } | 107 | } |
108 | 108 | ||
109 | static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev, | 109 | static void l2tp_eth_get_stats64(struct net_device *dev, |
110 | struct rtnl_link_stats64 *stats) | 110 | struct rtnl_link_stats64 *stats) |
111 | { | 111 | { |
112 | struct l2tp_eth *priv = netdev_priv(dev); | 112 | struct l2tp_eth *priv = netdev_priv(dev); |
113 | 113 | ||
@@ -117,10 +117,8 @@ static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev, | |||
117 | stats->rx_bytes = atomic_long_read(&priv->rx_bytes); | 117 | stats->rx_bytes = atomic_long_read(&priv->rx_bytes); |
118 | stats->rx_packets = atomic_long_read(&priv->rx_packets); | 118 | stats->rx_packets = atomic_long_read(&priv->rx_packets); |
119 | stats->rx_errors = atomic_long_read(&priv->rx_errors); | 119 | stats->rx_errors = atomic_long_read(&priv->rx_errors); |
120 | return stats; | ||
121 | } | 120 | } |
122 | 121 | ||
123 | |||
124 | static const struct net_device_ops l2tp_eth_netdev_ops = { | 122 | static const struct net_device_ops l2tp_eth_netdev_ops = { |
125 | .ndo_init = l2tp_eth_dev_init, | 123 | .ndo_init = l2tp_eth_dev_init, |
126 | .ndo_uninit = l2tp_eth_dev_uninit, | 124 | .ndo_uninit = l2tp_eth_dev_uninit, |
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 41497b670e2b..77e8a42225f9 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
@@ -1122,7 +1122,7 @@ static u16 ieee80211_netdev_select_queue(struct net_device *dev, | |||
1122 | return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb); | 1122 | return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb); |
1123 | } | 1123 | } |
1124 | 1124 | ||
1125 | static struct rtnl_link_stats64 * | 1125 | static void |
1126 | ieee80211_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | 1126 | ieee80211_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) |
1127 | { | 1127 | { |
1128 | int i; | 1128 | int i; |
@@ -1147,8 +1147,6 @@ ieee80211_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
1147 | stats->rx_bytes += rx_bytes; | 1147 | stats->rx_bytes += rx_bytes; |
1148 | stats->tx_bytes += tx_bytes; | 1148 | stats->tx_bytes += tx_bytes; |
1149 | } | 1149 | } |
1150 | |||
1151 | return stats; | ||
1152 | } | 1150 | } |
1153 | 1151 | ||
1154 | static const struct net_device_ops ieee80211_dataif_ops = { | 1152 | static const struct net_device_ops ieee80211_dataif_ops = { |
diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c index d5d6caecd072..09141a18ee2d 100644 --- a/net/openvswitch/vport-internal_dev.c +++ b/net/openvswitch/vport-internal_dev.c | |||
@@ -97,7 +97,7 @@ static void internal_dev_destructor(struct net_device *dev) | |||
97 | free_netdev(dev); | 97 | free_netdev(dev); |
98 | } | 98 | } |
99 | 99 | ||
100 | static struct rtnl_link_stats64 * | 100 | static void |
101 | internal_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats) | 101 | internal_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats) |
102 | { | 102 | { |
103 | int i; | 103 | int i; |
@@ -125,8 +125,6 @@ internal_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats) | |||
125 | stats->tx_bytes += local_stats.tx_bytes; | 125 | stats->tx_bytes += local_stats.tx_bytes; |
126 | stats->tx_packets += local_stats.tx_packets; | 126 | stats->tx_packets += local_stats.tx_packets; |
127 | } | 127 | } |
128 | |||
129 | return stats; | ||
130 | } | 128 | } |
131 | 129 | ||
132 | static void internal_set_rx_headroom(struct net_device *dev, int new_hr) | 130 | static void internal_set_rx_headroom(struct net_device *dev, int new_hr) |
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c index b0196366d58d..9fe6b427afed 100644 --- a/net/sched/sch_teql.c +++ b/net/sched/sch_teql.c | |||
@@ -401,8 +401,8 @@ static int teql_master_close(struct net_device *dev) | |||
401 | return 0; | 401 | return 0; |
402 | } | 402 | } |
403 | 403 | ||
404 | static struct rtnl_link_stats64 *teql_master_stats64(struct net_device *dev, | 404 | static void teql_master_stats64(struct net_device *dev, |
405 | struct rtnl_link_stats64 *stats) | 405 | struct rtnl_link_stats64 *stats) |
406 | { | 406 | { |
407 | struct teql_master *m = netdev_priv(dev); | 407 | struct teql_master *m = netdev_priv(dev); |
408 | 408 | ||
@@ -410,7 +410,6 @@ static struct rtnl_link_stats64 *teql_master_stats64(struct net_device *dev, | |||
410 | stats->tx_bytes = m->tx_bytes; | 410 | stats->tx_bytes = m->tx_bytes; |
411 | stats->tx_errors = m->tx_errors; | 411 | stats->tx_errors = m->tx_errors; |
412 | stats->tx_dropped = m->tx_dropped; | 412 | stats->tx_dropped = m->tx_dropped; |
413 | return stats; | ||
414 | } | 413 | } |
415 | 414 | ||
416 | static int teql_master_mtu(struct net_device *dev, int new_mtu) | 415 | static int teql_master_mtu(struct net_device *dev, int new_mtu) |