mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 18:20:25 +02:00 
			
		
		
		
	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>
This commit is contained in:
		
							parent
							
								
									63c64de7be
								
							
						
					
					
						commit
						bc1f44709c
					
				
					 82 changed files with 166 additions and 309 deletions
				
			
		| 
						 | 
					@ -211,8 +211,8 @@ static int lacp_fast;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int bond_init(struct net_device *bond_dev);
 | 
					static int bond_init(struct net_device *bond_dev);
 | 
				
			||||||
static void bond_uninit(struct net_device *bond_dev);
 | 
					static void bond_uninit(struct net_device *bond_dev);
 | 
				
			||||||
static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev,
 | 
					static void bond_get_stats(struct net_device *bond_dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats);
 | 
								   struct rtnl_link_stats64 *stats);
 | 
				
			||||||
static void bond_slave_arr_handler(struct work_struct *work);
 | 
					static void bond_slave_arr_handler(struct work_struct *work);
 | 
				
			||||||
static bool bond_time_in_interval(struct bonding *bond, unsigned long last_act,
 | 
					static bool bond_time_in_interval(struct bonding *bond, unsigned long last_act,
 | 
				
			||||||
				  int mod);
 | 
									  int mod);
 | 
				
			||||||
| 
						 | 
					@ -3337,8 +3337,8 @@ static void bond_fold_stats(struct rtnl_link_stats64 *_res,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev,
 | 
					static void bond_get_stats(struct net_device *bond_dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats)
 | 
								   struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct bonding *bond = netdev_priv(bond_dev);
 | 
						struct bonding *bond = netdev_priv(bond_dev);
 | 
				
			||||||
	struct rtnl_link_stats64 temp;
 | 
						struct rtnl_link_stats64 temp;
 | 
				
			||||||
| 
						 | 
					@ -3362,8 +3362,6 @@ static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memcpy(&bond->bond_stats, stats, sizeof(*stats));
 | 
						memcpy(&bond->bond_stats, stats, sizeof(*stats));
 | 
				
			||||||
	spin_unlock(&bond->stats_lock);
 | 
						spin_unlock(&bond->stats_lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd)
 | 
					static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,8 +54,8 @@ struct pcpu_dstats {
 | 
				
			||||||
	struct u64_stats_sync	syncp;
 | 
						struct u64_stats_sync	syncp;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *dummy_get_stats64(struct net_device *dev,
 | 
					static void dummy_get_stats64(struct net_device *dev,
 | 
				
			||||||
						   struct rtnl_link_stats64 *stats)
 | 
								      struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,6 @@ static struct rtnl_link_stats64 *dummy_get_stats64(struct net_device *dev,
 | 
				
			||||||
		stats->tx_bytes += tbytes;
 | 
							stats->tx_bytes += tbytes;
 | 
				
			||||||
		stats->tx_packets += tpackets;
 | 
							stats->tx_packets += tpackets;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static netdev_tx_t dummy_xmit(struct sk_buff *skb, struct net_device *dev)
 | 
					static netdev_tx_t dummy_xmit(struct sk_buff *skb, struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1471,8 +1471,8 @@ static netdev_tx_t slic_xmit(struct sk_buff *skb, struct net_device *dev)
 | 
				
			||||||
	return NETDEV_TX_OK;
 | 
						return NETDEV_TX_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *slic_get_stats(struct net_device *dev,
 | 
					static void slic_get_stats(struct net_device *dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *lst)
 | 
								   struct rtnl_link_stats64 *lst)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct slic_device *sdev = netdev_priv(dev);
 | 
						struct slic_device *sdev = netdev_priv(dev);
 | 
				
			||||||
	struct slic_stats *stats = &sdev->stats;
 | 
						struct slic_stats *stats = &sdev->stats;
 | 
				
			||||||
| 
						 | 
					@ -1489,8 +1489,6 @@ static struct rtnl_link_stats64 *slic_get_stats(struct net_device *dev,
 | 
				
			||||||
	SLIC_GET_STATS_COUNTER(lst->rx_crc_errors, stats, rx_crc);
 | 
						SLIC_GET_STATS_COUNTER(lst->rx_crc_errors, stats, rx_crc);
 | 
				
			||||||
	SLIC_GET_STATS_COUNTER(lst->rx_fifo_errors, stats, rx_oflow802);
 | 
						SLIC_GET_STATS_COUNTER(lst->rx_fifo_errors, stats, rx_oflow802);
 | 
				
			||||||
	SLIC_GET_STATS_COUNTER(lst->tx_carrier_errors, stats, tx_carrier);
 | 
						SLIC_GET_STATS_COUNTER(lst->tx_carrier_errors, stats, tx_carrier);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return lst;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int slic_get_sset_count(struct net_device *dev, int sset)
 | 
					static int slic_get_sset_count(struct net_device *dev, int sset)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2165,19 +2165,19 @@ static void ena_config_debug_area(struct ena_adapter *adapter)
 | 
				
			||||||
	ena_com_delete_debug_area(adapter->ena_dev);
 | 
						ena_com_delete_debug_area(adapter->ena_dev);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *ena_get_stats64(struct net_device *netdev,
 | 
					static void ena_get_stats64(struct net_device *netdev,
 | 
				
			||||||
						 struct rtnl_link_stats64 *stats)
 | 
								    struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ena_adapter *adapter = netdev_priv(netdev);
 | 
						struct ena_adapter *adapter = netdev_priv(netdev);
 | 
				
			||||||
	struct ena_admin_basic_stats ena_stats;
 | 
						struct ena_admin_basic_stats ena_stats;
 | 
				
			||||||
	int rc;
 | 
						int rc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!test_bit(ENA_FLAG_DEV_UP, &adapter->flags))
 | 
						if (!test_bit(ENA_FLAG_DEV_UP, &adapter->flags))
 | 
				
			||||||
		return NULL;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rc = ena_com_get_dev_basic_stats(adapter->ena_dev, &ena_stats);
 | 
						rc = ena_com_get_dev_basic_stats(adapter->ena_dev, &ena_stats);
 | 
				
			||||||
	if (rc)
 | 
						if (rc)
 | 
				
			||||||
		return NULL;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stats->tx_bytes = ((u64)ena_stats.tx_bytes_high << 32) |
 | 
						stats->tx_bytes = ((u64)ena_stats.tx_bytes_high << 32) |
 | 
				
			||||||
		ena_stats.tx_bytes_low;
 | 
							ena_stats.tx_bytes_low;
 | 
				
			||||||
| 
						 | 
					@ -2204,8 +2204,6 @@ static struct rtnl_link_stats64 *ena_get_stats64(struct net_device *netdev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stats->rx_errors = 0;
 | 
						stats->rx_errors = 0;
 | 
				
			||||||
	stats->tx_errors = 0;
 | 
						stats->tx_errors = 0;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct net_device_ops ena_netdev_ops = {
 | 
					static const struct net_device_ops ena_netdev_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1759,8 +1759,8 @@ static void xgbe_tx_timeout(struct net_device *netdev)
 | 
				
			||||||
	schedule_work(&pdata->restart_work);
 | 
						schedule_work(&pdata->restart_work);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev,
 | 
					static void xgbe_get_stats64(struct net_device *netdev,
 | 
				
			||||||
						  struct rtnl_link_stats64 *s)
 | 
								     struct rtnl_link_stats64 *s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct xgbe_prv_data *pdata = netdev_priv(netdev);
 | 
						struct xgbe_prv_data *pdata = netdev_priv(netdev);
 | 
				
			||||||
	struct xgbe_mmc_stats *pstats = &pdata->mmc_stats;
 | 
						struct xgbe_mmc_stats *pstats = &pdata->mmc_stats;
 | 
				
			||||||
| 
						 | 
					@ -1786,8 +1786,6 @@ static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev,
 | 
				
			||||||
	s->tx_dropped = netdev->stats.tx_dropped;
 | 
						s->tx_dropped = netdev->stats.tx_dropped;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	DBGPR("<--%s\n", __func__);
 | 
						DBGPR("<--%s\n", __func__);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return s;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto,
 | 
					static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1453,7 +1453,7 @@ static int xgene_enet_create_desc_rings(struct net_device *ndev)
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *xgene_enet_get_stats64(
 | 
					static void xgene_enet_get_stats64(
 | 
				
			||||||
			struct net_device *ndev,
 | 
								struct net_device *ndev,
 | 
				
			||||||
			struct rtnl_link_stats64 *storage)
 | 
								struct rtnl_link_stats64 *storage)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -1484,8 +1484,6 @@ static struct rtnl_link_stats64 *xgene_enet_get_stats64(
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	memcpy(storage, stats, sizeof(struct rtnl_link_stats64));
 | 
						memcpy(storage, stats, sizeof(struct rtnl_link_stats64));
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return storage;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int xgene_enet_set_mac_address(struct net_device *ndev, void *addr)
 | 
					static int xgene_enet_set_mac_address(struct net_device *ndev, void *addr)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1643,8 +1643,8 @@ static void alx_poll_controller(struct net_device *netdev)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *alx_get_stats64(struct net_device *dev,
 | 
					static void alx_get_stats64(struct net_device *dev,
 | 
				
			||||||
					struct rtnl_link_stats64 *net_stats)
 | 
								    struct rtnl_link_stats64 *net_stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct alx_priv *alx = netdev_priv(dev);
 | 
						struct alx_priv *alx = netdev_priv(dev);
 | 
				
			||||||
	struct alx_hw_stats *hw_stats = &alx->hw.stats;
 | 
						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,
 | 
				
			||||||
	net_stats->rx_packets = hw_stats->rx_ok + net_stats->rx_errors;
 | 
						net_stats->rx_packets = hw_stats->rx_ok + net_stats->rx_errors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_unlock(&alx->stats_lock);
 | 
						spin_unlock(&alx->stats_lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return net_stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct net_device_ops alx_netdev_ops = {
 | 
					static const struct net_device_ops alx_netdev_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1674,8 +1674,8 @@ static int b44_close(struct net_device *dev)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *b44_get_stats64(struct net_device *dev,
 | 
					static void b44_get_stats64(struct net_device *dev,
 | 
				
			||||||
					struct rtnl_link_stats64 *nstat)
 | 
								    struct rtnl_link_stats64 *nstat)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct b44 *bp = netdev_priv(dev);
 | 
						struct b44 *bp = netdev_priv(dev);
 | 
				
			||||||
	struct b44_hw_stats *hwstat = &bp->hw_stats;
 | 
						struct b44_hw_stats *hwstat = &bp->hw_stats;
 | 
				
			||||||
| 
						 | 
					@ -1718,7 +1718,6 @@ static struct rtnl_link_stats64 *b44_get_stats64(struct net_device *dev,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	} while (u64_stats_fetch_retry_irq(&hwstat->syncp, start));
 | 
						} while (u64_stats_fetch_retry_irq(&hwstat->syncp, start));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nstat;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int __b44_load_mcast(struct b44 *bp, struct net_device *dev)
 | 
					static int __b44_load_mcast(struct b44 *bp, struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6821,13 +6821,13 @@ bnx2_save_stats(struct bnx2 *bp)
 | 
				
			||||||
	(unsigned long) (bp->stats_blk->ctr +			\
 | 
						(unsigned long) (bp->stats_blk->ctr +			\
 | 
				
			||||||
			 bp->temp_stats_blk->ctr)
 | 
								 bp->temp_stats_blk->ctr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
bnx2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
 | 
					bnx2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct bnx2 *bp = netdev_priv(dev);
 | 
						struct bnx2 *bp = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (bp->stats_blk == NULL)
 | 
						if (bp->stats_blk == NULL)
 | 
				
			||||||
		return net_stats;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	net_stats->rx_packets =
 | 
						net_stats->rx_packets =
 | 
				
			||||||
		GET_64BIT_NET_STATS(stat_IfHCInUcastPkts) +
 | 
							GET_64BIT_NET_STATS(stat_IfHCInUcastPkts) +
 | 
				
			||||||
| 
						 | 
					@ -6891,7 +6891,6 @@ bnx2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
 | 
				
			||||||
		GET_32BIT_NET_STATS(stat_IfInMBUFDiscards) +
 | 
							GET_32BIT_NET_STATS(stat_IfInMBUFDiscards) +
 | 
				
			||||||
		GET_32BIT_NET_STATS(stat_FwRxDrop);
 | 
							GET_32BIT_NET_STATS(stat_FwRxDrop);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return net_stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* All ethtool functions called with rtnl_lock */
 | 
					/* All ethtool functions called with rtnl_lock */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5879,7 +5879,7 @@ static int bnxt_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 | 
				
			||||||
	return -EOPNOTSUPP;
 | 
						return -EOPNOTSUPP;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
bnxt_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					bnxt_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u32 i;
 | 
						u32 i;
 | 
				
			||||||
| 
						 | 
					@ -5888,7 +5888,7 @@ bnxt_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
	memset(stats, 0, sizeof(struct rtnl_link_stats64));
 | 
						memset(stats, 0, sizeof(struct rtnl_link_stats64));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!bp->bnapi)
 | 
						if (!bp->bnapi)
 | 
				
			||||||
		return stats;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* TODO check if we need to synchronize with bnxt_close path */
 | 
						/* TODO check if we need to synchronize with bnxt_close path */
 | 
				
			||||||
	for (i = 0; i < bp->cp_nr_rings; i++) {
 | 
						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)
 | 
				
			||||||
		stats->tx_fifo_errors = le64_to_cpu(tx->tx_fifo_underruns);
 | 
							stats->tx_fifo_errors = le64_to_cpu(tx->tx_fifo_underruns);
 | 
				
			||||||
		stats->tx_errors = le64_to_cpu(tx->tx_err);
 | 
							stats->tx_errors = le64_to_cpu(tx->tx_err);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool bnxt_mc_list_updated(struct bnxt *bp, u32 *rx_mask)
 | 
					static bool bnxt_mc_list_updated(struct bnxt *bp, u32 *rx_mask)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14142,8 +14142,8 @@ static const struct ethtool_ops tg3_ethtool_ops = {
 | 
				
			||||||
	.set_link_ksettings	= tg3_set_link_ksettings,
 | 
						.set_link_ksettings	= tg3_set_link_ksettings,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *tg3_get_stats64(struct net_device *dev,
 | 
					static void tg3_get_stats64(struct net_device *dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats)
 | 
								    struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct tg3 *tp = netdev_priv(dev);
 | 
						struct tg3 *tp = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14151,13 +14151,11 @@ static struct rtnl_link_stats64 *tg3_get_stats64(struct net_device *dev,
 | 
				
			||||||
	if (!tp->hw_stats) {
 | 
						if (!tp->hw_stats) {
 | 
				
			||||||
		*stats = tp->net_stats_prev;
 | 
							*stats = tp->net_stats_prev;
 | 
				
			||||||
		spin_unlock_bh(&tp->lock);
 | 
							spin_unlock_bh(&tp->lock);
 | 
				
			||||||
		return stats;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tg3_get_nstats(tp, stats);
 | 
						tg3_get_nstats(tp, stats);
 | 
				
			||||||
	spin_unlock_bh(&tp->lock);
 | 
						spin_unlock_bh(&tp->lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void tg3_set_rx_mode(struct net_device *dev)
 | 
					static void tg3_set_rx_mode(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3111,7 +3111,7 @@ bnad_start_xmit(struct sk_buff *skb, struct net_device *netdev)
 | 
				
			||||||
 * Used spin_lock to synchronize reading of stats structures, which
 | 
					 * Used spin_lock to synchronize reading of stats structures, which
 | 
				
			||||||
 * is written by BNA under the same lock.
 | 
					 * is written by BNA under the same lock.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
bnad_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
 | 
					bnad_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct bnad *bnad = netdev_priv(netdev);
 | 
						struct bnad *bnad = netdev_priv(netdev);
 | 
				
			||||||
| 
						 | 
					@ -3123,8 +3123,6 @@ bnad_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
	bnad_netdev_hwstats_fill(bnad, stats);
 | 
						bnad_netdev_hwstats_fill(bnad, stats);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_unlock_irqrestore(&bnad->bna_lock, flags);
 | 
						spin_unlock_irqrestore(&bnad->bna_lock, flags);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
| 
						 | 
					@ -3427,7 +3425,7 @@ static const struct net_device_ops bnad_netdev_ops = {
 | 
				
			||||||
	.ndo_open		= bnad_open,
 | 
						.ndo_open		= bnad_open,
 | 
				
			||||||
	.ndo_stop		= bnad_stop,
 | 
						.ndo_stop		= bnad_stop,
 | 
				
			||||||
	.ndo_start_xmit		= bnad_start_xmit,
 | 
						.ndo_start_xmit		= bnad_start_xmit,
 | 
				
			||||||
	.ndo_get_stats64		= bnad_get_stats64,
 | 
						.ndo_get_stats64	= bnad_get_stats64,
 | 
				
			||||||
	.ndo_set_rx_mode	= bnad_set_rx_mode,
 | 
						.ndo_set_rx_mode	= bnad_set_rx_mode,
 | 
				
			||||||
	.ndo_validate_addr      = eth_validate_addr,
 | 
						.ndo_validate_addr      = eth_validate_addr,
 | 
				
			||||||
	.ndo_set_mac_address    = bnad_set_mac_address,
 | 
						.ndo_set_mac_address    = bnad_set_mac_address,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1446,9 +1446,9 @@ static void xgmac_poll_controller(struct net_device *dev)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
xgmac_get_stats64(struct net_device *dev,
 | 
					xgmac_get_stats64(struct net_device *dev,
 | 
				
			||||||
		       struct rtnl_link_stats64 *storage)
 | 
							  struct rtnl_link_stats64 *storage)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct xgmac_priv *priv = netdev_priv(dev);
 | 
						struct xgmac_priv *priv = netdev_priv(dev);
 | 
				
			||||||
	void __iomem *base = priv->base;
 | 
						void __iomem *base = priv->base;
 | 
				
			||||||
| 
						 | 
					@ -1476,7 +1476,6 @@ xgmac_get_stats64(struct net_device *dev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	writel(0, base + XGMAC_MMC_CTRL);
 | 
						writel(0, base + XGMAC_MMC_CTRL);
 | 
				
			||||||
	spin_unlock_bh(&priv->stats_lock);
 | 
						spin_unlock_bh(&priv->stats_lock);
 | 
				
			||||||
	return storage;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int xgmac_set_mac_address(struct net_device *dev, void *p)
 | 
					static int xgmac_set_mac_address(struct net_device *dev, void *p)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1461,8 +1461,8 @@ void nicvf_update_stats(struct nicvf *nic)
 | 
				
			||||||
		nicvf_update_sq_stats(nic, qidx);
 | 
							nicvf_update_sq_stats(nic, qidx);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *nicvf_get_stats64(struct net_device *netdev,
 | 
					static void nicvf_get_stats64(struct net_device *netdev,
 | 
				
			||||||
					    struct rtnl_link_stats64 *stats)
 | 
								      struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct nicvf *nic = netdev_priv(netdev);
 | 
						struct nicvf *nic = netdev_priv(netdev);
 | 
				
			||||||
	struct nicvf_hw_stats *hw_stats = &nic->hw_stats;
 | 
						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,
 | 
				
			||||||
	stats->tx_packets = hw_stats->tx_frames;
 | 
						stats->tx_packets = hw_stats->tx_frames;
 | 
				
			||||||
	stats->tx_dropped = hw_stats->tx_drops;
 | 
						stats->tx_dropped = hw_stats->tx_drops;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void nicvf_tx_timeout(struct net_device *dev)
 | 
					static void nicvf_tx_timeout(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2375,8 +2375,8 @@ int cxgb4_remove_server_filter(const struct net_device *dev, unsigned int stid,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
EXPORT_SYMBOL(cxgb4_remove_server_filter);
 | 
					EXPORT_SYMBOL(cxgb4_remove_server_filter);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *cxgb_get_stats(struct net_device *dev,
 | 
					static void cxgb_get_stats(struct net_device *dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *ns)
 | 
								   struct rtnl_link_stats64 *ns)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct port_stats stats;
 | 
						struct port_stats stats;
 | 
				
			||||||
	struct port_info *p = netdev_priv(dev);
 | 
						struct port_info *p = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -2389,7 +2389,7 @@ static struct rtnl_link_stats64 *cxgb_get_stats(struct net_device *dev,
 | 
				
			||||||
	spin_lock(&adapter->stats_lock);
 | 
						spin_lock(&adapter->stats_lock);
 | 
				
			||||||
	if (!netif_device_present(dev)) {
 | 
						if (!netif_device_present(dev)) {
 | 
				
			||||||
		spin_unlock(&adapter->stats_lock);
 | 
							spin_unlock(&adapter->stats_lock);
 | 
				
			||||||
		return ns;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	t4_get_port_stats_offset(adapter, p->tx_chan, &stats,
 | 
						t4_get_port_stats_offset(adapter, p->tx_chan, &stats,
 | 
				
			||||||
				 &p->stats_base);
 | 
									 &p->stats_base);
 | 
				
			||||||
| 
						 | 
					@ -2423,7 +2423,6 @@ static struct rtnl_link_stats64 *cxgb_get_stats(struct net_device *dev,
 | 
				
			||||||
	ns->tx_errors = stats.tx_error_frames;
 | 
						ns->tx_errors = stats.tx_error_frames;
 | 
				
			||||||
	ns->rx_errors = stats.rx_symbol_err + stats.rx_fcs_err +
 | 
						ns->rx_errors = stats.rx_symbol_err + stats.rx_fcs_err +
 | 
				
			||||||
		ns->rx_length_errors + stats.rx_len_err + ns->rx_fifo_errors;
 | 
							ns->rx_length_errors + stats.rx_len_err + ns->rx_fifo_errors;
 | 
				
			||||||
	return ns;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int cxgb_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
 | 
					static int cxgb_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -680,8 +680,8 @@ static netdev_tx_t enic_hard_start_xmit(struct sk_buff *skb,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* dev_base_lock rwlock held, nominally process context */
 | 
					/* dev_base_lock rwlock held, nominally process context */
 | 
				
			||||||
static struct rtnl_link_stats64 *enic_get_stats(struct net_device *netdev,
 | 
					static void enic_get_stats(struct net_device *netdev,
 | 
				
			||||||
						struct rtnl_link_stats64 *net_stats)
 | 
								   struct rtnl_link_stats64 *net_stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct enic *enic = netdev_priv(netdev);
 | 
						struct enic *enic = netdev_priv(netdev);
 | 
				
			||||||
	struct vnic_stats *stats;
 | 
						struct vnic_stats *stats;
 | 
				
			||||||
| 
						 | 
					@ -693,7 +693,7 @@ static struct rtnl_link_stats64 *enic_get_stats(struct net_device *netdev,
 | 
				
			||||||
	 * recorded stats.
 | 
						 * recorded stats.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	if (err == -ENOMEM)
 | 
						if (err == -ENOMEM)
 | 
				
			||||||
		return net_stats;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	net_stats->tx_packets = stats->tx.tx_frames_ok;
 | 
						net_stats->tx_packets = stats->tx.tx_frames_ok;
 | 
				
			||||||
	net_stats->tx_bytes = stats->tx.tx_bytes_ok;
 | 
						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,
 | 
				
			||||||
	net_stats->rx_over_errors = enic->rq_truncated_pkts;
 | 
						net_stats->rx_over_errors = enic->rq_truncated_pkts;
 | 
				
			||||||
	net_stats->rx_crc_errors = enic->rq_bad_fcs;
 | 
						net_stats->rx_crc_errors = enic->rq_bad_fcs;
 | 
				
			||||||
	net_stats->rx_dropped = stats->rx.rx_no_bufs + stats->rx.rx_drop;
 | 
						net_stats->rx_dropped = stats->rx.rx_no_bufs + stats->rx.rx_drop;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return net_stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int enic_mc_sync(struct net_device *netdev, const u8 *mc_addr)
 | 
					static int enic_mc_sync(struct net_device *netdev, const u8 *mc_addr)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -457,7 +457,7 @@ static int ec_bhf_stop(struct net_device *net_dev)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
ec_bhf_get_stats(struct net_device *net_dev,
 | 
					ec_bhf_get_stats(struct net_device *net_dev,
 | 
				
			||||||
		 struct rtnl_link_stats64 *stats)
 | 
							 struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -472,8 +472,6 @@ ec_bhf_get_stats(struct net_device *net_dev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stats->tx_bytes = priv->stat_tx_bytes;
 | 
						stats->tx_bytes = priv->stat_tx_bytes;
 | 
				
			||||||
	stats->rx_bytes = priv->stat_rx_bytes;
 | 
						stats->rx_bytes = priv->stat_rx_bytes;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct net_device_ops ec_bhf_netdev_ops = {
 | 
					static const struct net_device_ops ec_bhf_netdev_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -639,8 +639,8 @@ void be_parse_stats(struct be_adapter *adapter)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *be_get_stats64(struct net_device *netdev,
 | 
					static void be_get_stats64(struct net_device *netdev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats)
 | 
								   struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct be_adapter *adapter = netdev_priv(netdev);
 | 
						struct be_adapter *adapter = netdev_priv(netdev);
 | 
				
			||||||
	struct be_drv_stats *drvs = &adapter->drv_stats;
 | 
						struct be_drv_stats *drvs = &adapter->drv_stats;
 | 
				
			||||||
| 
						 | 
					@ -704,7 +704,6 @@ static struct rtnl_link_stats64 *be_get_stats64(struct net_device *netdev,
 | 
				
			||||||
	stats->rx_fifo_errors = drvs->rxpp_fifo_overflow_drop +
 | 
						stats->rx_fifo_errors = drvs->rxpp_fifo_overflow_drop +
 | 
				
			||||||
				drvs->rx_input_fifo_overflow_drop +
 | 
									drvs->rx_input_fifo_overflow_drop +
 | 
				
			||||||
				drvs->rx_drops_no_pbuf;
 | 
									drvs->rx_drops_no_pbuf;
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void be_link_status_update(struct be_adapter *adapter, u8 link_status)
 | 
					void be_link_status_update(struct be_adapter *adapter, u8 link_status)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -313,8 +313,8 @@ static void dpaa_tx_timeout(struct net_device *net_dev)
 | 
				
			||||||
/* Calculates the statistics for the given device by adding the statistics
 | 
					/* Calculates the statistics for the given device by adding the statistics
 | 
				
			||||||
 * collected by each CPU.
 | 
					 * collected by each CPU.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct rtnl_link_stats64 *dpaa_get_stats64(struct net_device *net_dev,
 | 
					static void dpaa_get_stats64(struct net_device *net_dev,
 | 
				
			||||||
						  struct rtnl_link_stats64 *s)
 | 
								     struct rtnl_link_stats64 *s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int numstats = sizeof(struct rtnl_link_stats64) / sizeof(u64);
 | 
						int numstats = sizeof(struct rtnl_link_stats64) / sizeof(u64);
 | 
				
			||||||
	struct dpaa_priv *priv = netdev_priv(net_dev);
 | 
						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,
 | 
				
			||||||
		for (j = 0; j < numstats; j++)
 | 
							for (j = 0; j < numstats; j++)
 | 
				
			||||||
			netstats[j] += cpustats[j];
 | 
								netstats[j] += cpustats[j];
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return s;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct mac_device *dpaa_mac_dev_get(struct platform_device *pdev)
 | 
					static struct mac_device *dpaa_mac_dev_get(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1625,8 +1625,8 @@ void hns_nic_set_rx_mode(struct net_device *ndev)
 | 
				
			||||||
		netdev_err(ndev, "sync uc address fail\n");
 | 
							netdev_err(ndev, "sync uc address fail\n");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct rtnl_link_stats64 *hns_nic_get_stats64(struct net_device *ndev,
 | 
					static void hns_nic_get_stats64(struct net_device *ndev,
 | 
				
			||||||
					      struct rtnl_link_stats64 *stats)
 | 
									struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int idx = 0;
 | 
						int idx = 0;
 | 
				
			||||||
	u64 tx_bytes = 0;
 | 
						u64 tx_bytes = 0;
 | 
				
			||||||
| 
						 | 
					@ -1668,8 +1668,6 @@ struct rtnl_link_stats64 *hns_nic_get_stats64(struct net_device *ndev,
 | 
				
			||||||
	stats->tx_window_errors = ndev->stats.tx_window_errors;
 | 
						stats->tx_window_errors = ndev->stats.tx_window_errors;
 | 
				
			||||||
	stats->rx_compressed = ndev->stats.rx_compressed;
 | 
						stats->rx_compressed = ndev->stats.rx_compressed;
 | 
				
			||||||
	stats->tx_compressed = ndev->stats.tx_compressed;
 | 
						stats->tx_compressed = ndev->stats.tx_compressed;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static u16
 | 
					static u16
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -328,8 +328,8 @@ static void ehea_update_bcmc_registrations(void)
 | 
				
			||||||
	spin_unlock_irqrestore(&ehea_bcmc_regs.lock, flags);
 | 
						spin_unlock_irqrestore(&ehea_bcmc_regs.lock, flags);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *ehea_get_stats64(struct net_device *dev,
 | 
					static void ehea_get_stats64(struct net_device *dev,
 | 
				
			||||||
					struct rtnl_link_stats64 *stats)
 | 
								     struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ehea_port *port = netdev_priv(dev);
 | 
						struct ehea_port *port = netdev_priv(dev);
 | 
				
			||||||
	u64 rx_packets = 0, tx_packets = 0, rx_bytes = 0, tx_bytes = 0;
 | 
						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,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stats->multicast = port->stats.multicast;
 | 
						stats->multicast = port->stats.multicast;
 | 
				
			||||||
	stats->rx_errors = port->stats.rx_errors;
 | 
						stats->rx_errors = port->stats.rx_errors;
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void ehea_update_stats(struct work_struct *work)
 | 
					static void ehea_update_stats(struct work_struct *work)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -493,8 +493,8 @@ int e1000e_setup_rx_resources(struct e1000_ring *ring);
 | 
				
			||||||
int e1000e_setup_tx_resources(struct e1000_ring *ring);
 | 
					int e1000e_setup_tx_resources(struct e1000_ring *ring);
 | 
				
			||||||
void e1000e_free_rx_resources(struct e1000_ring *ring);
 | 
					void e1000e_free_rx_resources(struct e1000_ring *ring);
 | 
				
			||||||
void e1000e_free_tx_resources(struct e1000_ring *ring);
 | 
					void e1000e_free_tx_resources(struct e1000_ring *ring);
 | 
				
			||||||
struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev,
 | 
					void e1000e_get_stats64(struct net_device *netdev,
 | 
				
			||||||
					     struct rtnl_link_stats64 *stats);
 | 
								struct rtnl_link_stats64 *stats);
 | 
				
			||||||
void e1000e_set_interrupt_capability(struct e1000_adapter *adapter);
 | 
					void e1000e_set_interrupt_capability(struct e1000_adapter *adapter);
 | 
				
			||||||
void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter);
 | 
					void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter);
 | 
				
			||||||
void e1000e_get_hw_control(struct e1000_adapter *adapter);
 | 
					void e1000e_get_hw_control(struct e1000_adapter *adapter);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5920,8 +5920,8 @@ static void e1000_reset_task(struct work_struct *work)
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Returns the address of the device statistics structure.
 | 
					 * Returns the address of the device statistics structure.
 | 
				
			||||||
 **/
 | 
					 **/
 | 
				
			||||||
struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev,
 | 
					void e1000e_get_stats64(struct net_device *netdev,
 | 
				
			||||||
					     struct rtnl_link_stats64 *stats)
 | 
								struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct e1000_adapter *adapter = netdev_priv(netdev);
 | 
						struct e1000_adapter *adapter = netdev_priv(netdev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5958,7 +5958,6 @@ struct rtnl_link_stats64 *e1000e_get_stats64(struct net_device *netdev,
 | 
				
			||||||
	/* Tx Dropped needs to be maintained elsewhere */
 | 
						/* Tx Dropped needs to be maintained elsewhere */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_unlock(&adapter->stats64_lock);
 | 
						spin_unlock(&adapter->stats64_lock);
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1118,8 +1118,8 @@ void fm10k_reset_rx_state(struct fm10k_intfc *interface)
 | 
				
			||||||
 * Returns 64bit statistics, for use in the ndo_get_stats64 callback. This
 | 
					 * Returns 64bit statistics, for use in the ndo_get_stats64 callback. This
 | 
				
			||||||
 * function replaces fm10k_get_stats for kernels which support it.
 | 
					 * function replaces fm10k_get_stats for kernels which support it.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct rtnl_link_stats64 *fm10k_get_stats64(struct net_device *netdev,
 | 
					static void fm10k_get_stats64(struct net_device *netdev,
 | 
				
			||||||
						   struct rtnl_link_stats64 *stats)
 | 
								      struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct fm10k_intfc *interface = netdev_priv(netdev);
 | 
						struct fm10k_intfc *interface = netdev_priv(netdev);
 | 
				
			||||||
	struct fm10k_ring *ring;
 | 
						struct fm10k_ring *ring;
 | 
				
			||||||
| 
						 | 
					@ -1164,8 +1164,6 @@ static struct rtnl_link_stats64 *fm10k_get_stats64(struct net_device *netdev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* following stats updated by fm10k_service_task() */
 | 
						/* following stats updated by fm10k_service_task() */
 | 
				
			||||||
	stats->rx_missed_errors	= netdev->stats.rx_missed_errors;
 | 
						stats->rx_missed_errors	= netdev->stats.rx_missed_errors;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int fm10k_setup_tc(struct net_device *dev, u8 tc)
 | 
					int fm10k_setup_tc(struct net_device *dev, u8 tc)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -834,9 +834,8 @@ static inline void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector)
 | 
				
			||||||
void i40e_irq_dynamic_disable_icr0(struct i40e_pf *pf);
 | 
					void i40e_irq_dynamic_disable_icr0(struct i40e_pf *pf);
 | 
				
			||||||
void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf, bool clearpba);
 | 
					void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf, bool clearpba);
 | 
				
			||||||
#ifdef I40E_FCOE
 | 
					#ifdef I40E_FCOE
 | 
				
			||||||
struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
 | 
					void i40e_get_netdev_stats_struct(struct net_device *netdev,
 | 
				
			||||||
					     struct net_device *netdev,
 | 
									  struct rtnl_link_stats64 *storage);
 | 
				
			||||||
					     struct rtnl_link_stats64 *storage);
 | 
					 | 
				
			||||||
int i40e_set_mac(struct net_device *netdev, void *p);
 | 
					int i40e_set_mac(struct net_device *netdev, void *p);
 | 
				
			||||||
void i40e_set_rx_mode(struct net_device *netdev);
 | 
					void i40e_set_rx_mode(struct net_device *netdev);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -409,15 +409,11 @@ struct rtnl_link_stats64 *i40e_get_vsi_stats_struct(struct i40e_vsi *vsi)
 | 
				
			||||||
 * Returns the address of the device statistics structure.
 | 
					 * Returns the address of the device statistics structure.
 | 
				
			||||||
 * The statistics are actually updated from the service task.
 | 
					 * The statistics are actually updated from the service task.
 | 
				
			||||||
 **/
 | 
					 **/
 | 
				
			||||||
#ifdef I40E_FCOE
 | 
					#ifndef I40E_FCOE
 | 
				
			||||||
struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
 | 
					static
 | 
				
			||||||
					     struct net_device *netdev,
 | 
					 | 
				
			||||||
					     struct rtnl_link_stats64 *stats)
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
 | 
					 | 
				
			||||||
					     struct net_device *netdev,
 | 
					 | 
				
			||||||
					     struct rtnl_link_stats64 *stats)
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					void i40e_get_netdev_stats_struct(struct net_device *netdev,
 | 
				
			||||||
 | 
									  struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct i40e_netdev_priv *np = netdev_priv(netdev);
 | 
						struct i40e_netdev_priv *np = netdev_priv(netdev);
 | 
				
			||||||
	struct i40e_ring *tx_ring, *rx_ring;
 | 
						struct i40e_ring *tx_ring, *rx_ring;
 | 
				
			||||||
| 
						 | 
					@ -426,10 +422,10 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (test_bit(__I40E_DOWN, &vsi->state))
 | 
						if (test_bit(__I40E_DOWN, &vsi->state))
 | 
				
			||||||
		return stats;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!vsi->tx_rings)
 | 
						if (!vsi->tx_rings)
 | 
				
			||||||
		return stats;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rcu_read_lock();
 | 
						rcu_read_lock();
 | 
				
			||||||
	for (i = 0; i < vsi->num_queue_pairs; i++) {
 | 
						for (i = 0; i < vsi->num_queue_pairs; i++) {
 | 
				
			||||||
| 
						 | 
					@ -469,8 +465,6 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
 | 
				
			||||||
	stats->rx_dropped	= vsi_stats->rx_dropped;
 | 
						stats->rx_dropped	= vsi_stats->rx_dropped;
 | 
				
			||||||
	stats->rx_crc_errors	= vsi_stats->rx_crc_errors;
 | 
						stats->rx_crc_errors	= vsi_stats->rx_crc_errors;
 | 
				
			||||||
	stats->rx_length_errors	= vsi_stats->rx_length_errors;
 | 
						stats->rx_length_errors	= vsi_stats->rx_length_errors;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -137,8 +137,8 @@ static void igb_update_phy_info(unsigned long);
 | 
				
			||||||
static void igb_watchdog(unsigned long);
 | 
					static void igb_watchdog(unsigned long);
 | 
				
			||||||
static void igb_watchdog_task(struct work_struct *);
 | 
					static void igb_watchdog_task(struct work_struct *);
 | 
				
			||||||
static netdev_tx_t igb_xmit_frame(struct sk_buff *skb, struct net_device *);
 | 
					static netdev_tx_t igb_xmit_frame(struct sk_buff *skb, struct net_device *);
 | 
				
			||||||
static struct rtnl_link_stats64 *igb_get_stats64(struct net_device *dev,
 | 
					static void igb_get_stats64(struct net_device *dev,
 | 
				
			||||||
					  struct rtnl_link_stats64 *stats);
 | 
								    struct rtnl_link_stats64 *stats);
 | 
				
			||||||
static int igb_change_mtu(struct net_device *, int);
 | 
					static int igb_change_mtu(struct net_device *, int);
 | 
				
			||||||
static int igb_set_mac(struct net_device *, void *);
 | 
					static int igb_set_mac(struct net_device *, void *);
 | 
				
			||||||
static void igb_set_uta(struct igb_adapter *adapter, bool set);
 | 
					static void igb_set_uta(struct igb_adapter *adapter, bool set);
 | 
				
			||||||
| 
						 | 
					@ -5404,8 +5404,8 @@ static void igb_reset_task(struct work_struct *work)
 | 
				
			||||||
 *  @netdev: network interface device structure
 | 
					 *  @netdev: network interface device structure
 | 
				
			||||||
 *  @stats: rtnl_link_stats64 pointer
 | 
					 *  @stats: rtnl_link_stats64 pointer
 | 
				
			||||||
 **/
 | 
					 **/
 | 
				
			||||||
static struct rtnl_link_stats64 *igb_get_stats64(struct net_device *netdev,
 | 
					static void igb_get_stats64(struct net_device *netdev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats)
 | 
								    struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct igb_adapter *adapter = netdev_priv(netdev);
 | 
						struct igb_adapter *adapter = netdev_priv(netdev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5413,8 +5413,6 @@ static struct rtnl_link_stats64 *igb_get_stats64(struct net_device *netdev,
 | 
				
			||||||
	igb_update_stats(adapter, &adapter->stats64);
 | 
						igb_update_stats(adapter, &adapter->stats64);
 | 
				
			||||||
	memcpy(stats, &adapter->stats64, sizeof(*stats));
 | 
						memcpy(stats, &adapter->stats64, sizeof(*stats));
 | 
				
			||||||
	spin_unlock(&adapter->stats64_lock);
 | 
						spin_unlock(&adapter->stats64_lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8173,8 +8173,9 @@ static void ixgbe_netpoll(struct net_device *netdev)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
static struct rtnl_link_stats64 *ixgbe_get_stats64(struct net_device *netdev,
 | 
					
 | 
				
			||||||
						   struct rtnl_link_stats64 *stats)
 | 
					static void ixgbe_get_stats64(struct net_device *netdev,
 | 
				
			||||||
 | 
								      struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ixgbe_adapter *adapter = netdev_priv(netdev);
 | 
						struct ixgbe_adapter *adapter = netdev_priv(netdev);
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
| 
						 | 
					@ -8212,13 +8213,13 @@ static struct rtnl_link_stats64 *ixgbe_get_stats64(struct net_device *netdev,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	rcu_read_unlock();
 | 
						rcu_read_unlock();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* following stats updated by ixgbe_watchdog_task() */
 | 
						/* following stats updated by ixgbe_watchdog_task() */
 | 
				
			||||||
	stats->multicast	= netdev->stats.multicast;
 | 
						stats->multicast	= netdev->stats.multicast;
 | 
				
			||||||
	stats->rx_errors	= netdev->stats.rx_errors;
 | 
						stats->rx_errors	= netdev->stats.rx_errors;
 | 
				
			||||||
	stats->rx_length_errors	= netdev->stats.rx_length_errors;
 | 
						stats->rx_length_errors	= netdev->stats.rx_length_errors;
 | 
				
			||||||
	stats->rx_crc_errors	= netdev->stats.rx_crc_errors;
 | 
						stats->rx_crc_errors	= netdev->stats.rx_crc_errors;
 | 
				
			||||||
	stats->rx_missed_errors	= netdev->stats.rx_missed_errors;
 | 
						stats->rx_missed_errors	= netdev->stats.rx_missed_errors;
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_IXGBE_DCB
 | 
					#ifdef CONFIG_IXGBE_DCB
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3896,8 +3896,8 @@ static void ixgbevf_shutdown(struct pci_dev *pdev)
 | 
				
			||||||
	ixgbevf_suspend(pdev, PMSG_SUSPEND);
 | 
						ixgbevf_suspend(pdev, PMSG_SUSPEND);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *ixgbevf_get_stats(struct net_device *netdev,
 | 
					static void ixgbevf_get_stats(struct net_device *netdev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats)
 | 
								      struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ixgbevf_adapter *adapter = netdev_priv(netdev);
 | 
						struct ixgbevf_adapter *adapter = netdev_priv(netdev);
 | 
				
			||||||
	unsigned int start;
 | 
						unsigned int start;
 | 
				
			||||||
| 
						 | 
					@ -3930,8 +3930,6 @@ static struct rtnl_link_stats64 *ixgbevf_get_stats(struct net_device *netdev,
 | 
				
			||||||
		stats->tx_bytes += bytes;
 | 
							stats->tx_bytes += bytes;
 | 
				
			||||||
		stats->tx_packets += packets;
 | 
							stats->tx_packets += packets;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define IXGBEVF_MAX_MAC_HDR_LEN		127
 | 
					#define IXGBEVF_MAX_MAC_HDR_LEN		127
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -652,7 +652,7 @@ static void mvneta_mib_counters_clear(struct mvneta_port *pp)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Get System Network Statistics */
 | 
					/* Get System Network Statistics */
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
mvneta_get_stats64(struct net_device *dev,
 | 
					mvneta_get_stats64(struct net_device *dev,
 | 
				
			||||||
		   struct rtnl_link_stats64 *stats)
 | 
							   struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -686,8 +686,6 @@ mvneta_get_stats64(struct net_device *dev,
 | 
				
			||||||
	stats->rx_dropped	= dev->stats.rx_dropped;
 | 
						stats->rx_dropped	= dev->stats.rx_dropped;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stats->tx_dropped	= dev->stats.tx_dropped;
 | 
						stats->tx_dropped	= dev->stats.tx_dropped;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Rx descriptors helper methods */
 | 
					/* Rx descriptors helper methods */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5739,7 +5739,7 @@ static int mvpp2_change_mtu(struct net_device *dev, int mtu)
 | 
				
			||||||
	return err;
 | 
						return err;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct mvpp2_port *port = netdev_priv(dev);
 | 
						struct mvpp2_port *port = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -5771,8 +5771,6 @@ mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
	stats->rx_errors	= dev->stats.rx_errors;
 | 
						stats->rx_errors	= dev->stats.rx_errors;
 | 
				
			||||||
	stats->rx_dropped	= dev->stats.rx_dropped;
 | 
						stats->rx_dropped	= dev->stats.rx_dropped;
 | 
				
			||||||
	stats->tx_dropped	= dev->stats.tx_dropped;
 | 
						stats->tx_dropped	= dev->stats.tx_dropped;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int mvpp2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 | 
					static int mvpp2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3888,8 +3888,8 @@ static void sky2_set_multicast(struct net_device *dev)
 | 
				
			||||||
	gma_write16(hw, port, GM_RX_CTRL, reg);
 | 
						gma_write16(hw, port, GM_RX_CTRL, reg);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *sky2_get_stats(struct net_device *dev,
 | 
					static void sky2_get_stats(struct net_device *dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats)
 | 
								   struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct sky2_port *sky2 = netdev_priv(dev);
 | 
						struct sky2_port *sky2 = netdev_priv(dev);
 | 
				
			||||||
	struct sky2_hw *hw = sky2->hw;
 | 
						struct sky2_hw *hw = sky2->hw;
 | 
				
			||||||
| 
						 | 
					@ -3929,8 +3929,6 @@ static struct rtnl_link_stats64 *sky2_get_stats(struct net_device *dev,
 | 
				
			||||||
	stats->rx_dropped = dev->stats.rx_dropped;
 | 
						stats->rx_dropped = dev->stats.rx_dropped;
 | 
				
			||||||
	stats->rx_fifo_errors = dev->stats.rx_fifo_errors;
 | 
						stats->rx_fifo_errors = dev->stats.rx_fifo_errors;
 | 
				
			||||||
	stats->tx_fifo_errors = dev->stats.tx_fifo_errors;
 | 
						stats->tx_fifo_errors = dev->stats.tx_fifo_errors;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Can have one global because blinking is controlled by
 | 
					/* Can have one global because blinking is controlled by
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -462,8 +462,8 @@ static void mtk_stats_update(struct mtk_eth *eth)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *mtk_get_stats64(struct net_device *dev,
 | 
					static void mtk_get_stats64(struct net_device *dev,
 | 
				
			||||||
					struct rtnl_link_stats64 *storage)
 | 
								    struct rtnl_link_stats64 *storage)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct mtk_mac *mac = netdev_priv(dev);
 | 
						struct mtk_mac *mac = netdev_priv(dev);
 | 
				
			||||||
	struct mtk_hw_stats *hw_stats = mac->hw_stats;
 | 
						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,
 | 
				
			||||||
	storage->tx_errors = dev->stats.tx_errors;
 | 
						storage->tx_errors = dev->stats.tx_errors;
 | 
				
			||||||
	storage->rx_dropped = dev->stats.rx_dropped;
 | 
						storage->rx_dropped = dev->stats.rx_dropped;
 | 
				
			||||||
	storage->tx_dropped = dev->stats.tx_dropped;
 | 
						storage->tx_dropped = dev->stats.tx_dropped;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return storage;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline int mtk_max_frag_size(int mtu)
 | 
					static inline int mtk_max_frag_size(int mtu)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1321,7 +1321,7 @@ static void mlx4_en_tx_timeout(struct net_device *dev)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
mlx4_en_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					mlx4_en_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct mlx4_en_priv *priv = netdev_priv(dev);
 | 
						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)
 | 
				
			||||||
	mlx4_en_fold_software_stats(dev);
 | 
						mlx4_en_fold_software_stats(dev);
 | 
				
			||||||
	netdev_stats_to_stats64(stats, &dev->stats);
 | 
						netdev_stats_to_stats64(stats, &dev->stats);
 | 
				
			||||||
	spin_unlock_bh(&priv->stats_lock);
 | 
						spin_unlock_bh(&priv->stats_lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void mlx4_en_set_default_moderation(struct mlx4_en_priv *priv)
 | 
					static void mlx4_en_set_default_moderation(struct mlx4_en_priv *priv)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2686,7 +2686,7 @@ static int mlx5e_ndo_setup_tc(struct net_device *dev, u32 handle,
 | 
				
			||||||
	return mlx5e_setup_tc(dev, tc->tc);
 | 
						return mlx5e_setup_tc(dev, tc->tc);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct mlx5e_priv *priv = netdev_priv(dev);
 | 
						struct mlx5e_priv *priv = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -2729,7 +2729,6 @@ mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
	stats->multicast =
 | 
						stats->multicast =
 | 
				
			||||||
		VPORT_COUNTER_GET(vstats, received_eth_multicast.packets);
 | 
							VPORT_COUNTER_GET(vstats, received_eth_multicast.packets);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void mlx5e_set_rx_mode(struct net_device *dev)
 | 
					static void mlx5e_set_rx_mode(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -374,13 +374,12 @@ int mlx5e_get_offload_stats(int attr_id, const struct net_device *dev,
 | 
				
			||||||
	return -EINVAL;
 | 
						return -EINVAL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
mlx5e_rep_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					mlx5e_rep_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct mlx5e_priv *priv = netdev_priv(dev);
 | 
						struct mlx5e_priv *priv = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memcpy(stats, &priv->stats.vf_vport, sizeof(*stats));
 | 
						memcpy(stats, &priv->stats.vf_vport, sizeof(*stats));
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct switchdev_ops mlx5e_rep_switchdev_ops = {
 | 
					static const struct switchdev_ops mlx5e_rep_switchdev_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -947,15 +947,13 @@ static void update_stats_cache(struct work_struct *work)
 | 
				
			||||||
/* Return the stats from a cache that is updated periodically,
 | 
					/* Return the stats from a cache that is updated periodically,
 | 
				
			||||||
 * as this function might get called in an atomic context.
 | 
					 * as this function might get called in an atomic context.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
mlxsw_sp_port_get_stats64(struct net_device *dev,
 | 
					mlxsw_sp_port_get_stats64(struct net_device *dev,
 | 
				
			||||||
			  struct rtnl_link_stats64 *stats)
 | 
								  struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev);
 | 
						struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memcpy(stats, mlxsw_sp_port->hw_stats.cache, sizeof(*stats));
 | 
						memcpy(stats, mlxsw_sp_port->hw_stats.cache, sizeof(*stats));
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int mlxsw_sp_port_vlan_set(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid_begin,
 | 
					int mlxsw_sp_port_vlan_set(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid_begin,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -381,7 +381,7 @@ static int mlxsw_sx_port_change_mtu(struct net_device *dev, int mtu)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
mlxsw_sx_port_get_stats64(struct net_device *dev,
 | 
					mlxsw_sx_port_get_stats64(struct net_device *dev,
 | 
				
			||||||
			  struct rtnl_link_stats64 *stats)
 | 
								  struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -410,7 +410,6 @@ mlxsw_sx_port_get_stats64(struct net_device *dev,
 | 
				
			||||||
		tx_dropped	+= p->tx_dropped;
 | 
							tx_dropped	+= p->tx_dropped;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	stats->tx_dropped	= tx_dropped;
 | 
						stats->tx_dropped	= tx_dropped;
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int mlxsw_sx_port_get_phys_port_name(struct net_device *dev, char *name,
 | 
					static int mlxsw_sx_port_get_phys_port_name(struct net_device *dev, char *name,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -378,8 +378,8 @@ static inline void put_be32(__be32 val, __be32 __iomem * p)
 | 
				
			||||||
	__raw_writel((__force __u32) val, (__force void __iomem *)p);
 | 
						__raw_writel((__force __u32) val, (__force void __iomem *)p);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *myri10ge_get_stats(struct net_device *dev,
 | 
					static void myri10ge_get_stats(struct net_device *dev,
 | 
				
			||||||
						    struct rtnl_link_stats64 *stats);
 | 
								       struct rtnl_link_stats64 *stats);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void set_fw_name(struct myri10ge_priv *mgp, char *name, bool allocated)
 | 
					static void set_fw_name(struct myri10ge_priv *mgp, char *name, bool allocated)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -3119,8 +3119,8 @@ static netdev_tx_t myri10ge_sw_tso(struct sk_buff *skb,
 | 
				
			||||||
	return NETDEV_TX_OK;
 | 
						return NETDEV_TX_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *myri10ge_get_stats(struct net_device *dev,
 | 
					static void myri10ge_get_stats(struct net_device *dev,
 | 
				
			||||||
						    struct rtnl_link_stats64 *stats)
 | 
								       struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	const struct myri10ge_priv *mgp = netdev_priv(dev);
 | 
						const struct myri10ge_priv *mgp = netdev_priv(dev);
 | 
				
			||||||
	const struct myri10ge_slice_netstats *slice_stats;
 | 
						const struct myri10ge_slice_netstats *slice_stats;
 | 
				
			||||||
| 
						 | 
					@ -3135,7 +3135,6 @@ static struct rtnl_link_stats64 *myri10ge_get_stats(struct net_device *dev,
 | 
				
			||||||
		stats->rx_dropped += slice_stats->rx_dropped;
 | 
							stats->rx_dropped += slice_stats->rx_dropped;
 | 
				
			||||||
		stats->tx_dropped += slice_stats->tx_dropped;
 | 
							stats->tx_dropped += slice_stats->tx_dropped;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void myri10ge_set_multicast_list(struct net_device *dev)
 | 
					static void myri10ge_set_multicast_list(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3111,7 +3111,7 @@ static int vxge_change_mtu(struct net_device *dev, int new_mtu)
 | 
				
			||||||
 * @stats: pointer to struct rtnl_link_stats64
 | 
					 * @stats: pointer to struct rtnl_link_stats64
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
 | 
					vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct vxgedev *vdev = netdev_priv(dev);
 | 
						struct vxgedev *vdev = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -3150,8 +3150,6 @@ vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
 | 
				
			||||||
		net_stats->tx_bytes += bytes;
 | 
							net_stats->tx_bytes += bytes;
 | 
				
			||||||
		net_stats->tx_errors += txstats->tx_errors;
 | 
							net_stats->tx_errors += txstats->tx_errors;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return net_stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static enum vxge_hw_status vxge_timestamp_config(struct __vxge_hw_device *devh)
 | 
					static enum vxge_hw_status vxge_timestamp_config(struct __vxge_hw_device *devh)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2638,8 +2638,8 @@ static int nfp_net_change_mtu(struct net_device *netdev, int new_mtu)
 | 
				
			||||||
	return nfp_net_ring_reconfig(nn, &nn->xdp_prog, &rx, NULL);
 | 
						return nfp_net_ring_reconfig(nn, &nn->xdp_prog, &rx, NULL);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *nfp_net_stat64(struct net_device *netdev,
 | 
					static void nfp_net_stat64(struct net_device *netdev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats)
 | 
								   struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct nfp_net *nn = netdev_priv(netdev);
 | 
						struct nfp_net *nn = netdev_priv(netdev);
 | 
				
			||||||
	int r;
 | 
						int r;
 | 
				
			||||||
| 
						 | 
					@ -2669,8 +2669,6 @@ static struct rtnl_link_stats64 *nfp_net_stat64(struct net_device *netdev,
 | 
				
			||||||
		stats->tx_bytes += data[1];
 | 
							stats->tx_bytes += data[1];
 | 
				
			||||||
		stats->tx_errors += data[2];
 | 
							stats->tx_errors += data[2];
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool nfp_net_ebpf_capable(struct nfp_net *nn)
 | 
					static bool nfp_net_ebpf_capable(struct nfp_net *nn)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1733,7 +1733,7 @@ static void nv_update_stats(struct net_device *dev)
 | 
				
			||||||
 * Called with read_lock(&dev_base_lock) held for read -
 | 
					 * Called with read_lock(&dev_base_lock) held for read -
 | 
				
			||||||
 * only synchronized against unregister_netdevice.
 | 
					 * only synchronized against unregister_netdevice.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct rtnl_link_stats64*
 | 
					static void
 | 
				
			||||||
nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage)
 | 
					nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage)
 | 
				
			||||||
	__acquires(&netdev_priv(dev)->hwstats_lock)
 | 
						__acquires(&netdev_priv(dev)->hwstats_lock)
 | 
				
			||||||
	__releases(&netdev_priv(dev)->hwstats_lock)
 | 
						__releases(&netdev_priv(dev)->hwstats_lock)
 | 
				
			||||||
| 
						 | 
					@ -1793,8 +1793,6 @@ nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		spin_unlock_bh(&np->hwstats_lock);
 | 
							spin_unlock_bh(&np->hwstats_lock);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return storage;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -90,8 +90,8 @@ static irqreturn_t netxen_msix_intr(int irq, void *data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void netxen_free_ip_list(struct netxen_adapter *, bool);
 | 
					static void netxen_free_ip_list(struct netxen_adapter *, bool);
 | 
				
			||||||
static void netxen_restore_indev_addr(struct net_device *dev, unsigned long);
 | 
					static void netxen_restore_indev_addr(struct net_device *dev, unsigned long);
 | 
				
			||||||
static struct rtnl_link_stats64 *netxen_nic_get_stats(struct net_device *dev,
 | 
					static void netxen_nic_get_stats(struct net_device *dev,
 | 
				
			||||||
						      struct rtnl_link_stats64 *stats);
 | 
									 struct rtnl_link_stats64 *stats);
 | 
				
			||||||
static int netxen_nic_set_mac(struct net_device *netdev, void *p);
 | 
					static int netxen_nic_set_mac(struct net_device *netdev, void *p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*  PCI Device ID Table  */
 | 
					/*  PCI Device ID Table  */
 | 
				
			||||||
| 
						 | 
					@ -2302,8 +2302,8 @@ static void netxen_tx_timeout_task(struct work_struct *work)
 | 
				
			||||||
	clear_bit(__NX_RESETTING, &adapter->state);
 | 
						clear_bit(__NX_RESETTING, &adapter->state);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *netxen_nic_get_stats(struct net_device *netdev,
 | 
					static void netxen_nic_get_stats(struct net_device *netdev,
 | 
				
			||||||
						      struct rtnl_link_stats64 *stats)
 | 
									 struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct netxen_adapter *adapter = netdev_priv(netdev);
 | 
						struct netxen_adapter *adapter = netdev_priv(netdev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2313,8 +2313,6 @@ static struct rtnl_link_stats64 *netxen_nic_get_stats(struct net_device *netdev,
 | 
				
			||||||
	stats->tx_bytes = adapter->stats.txbytes;
 | 
						stats->tx_bytes = adapter->stats.txbytes;
 | 
				
			||||||
	stats->rx_dropped = adapter->stats.rxdropped;
 | 
						stats->rx_dropped = adapter->stats.rxdropped;
 | 
				
			||||||
	stats->tx_dropped = adapter->stats.txdropped;
 | 
						stats->tx_dropped = adapter->stats.txdropped;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static irqreturn_t netxen_intr(int irq, void *data)
 | 
					static irqreturn_t netxen_intr(int irq, void *data)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -398,9 +398,8 @@ void qede_fill_by_demand_stats(struct qede_dev *edev)
 | 
				
			||||||
	edev->stats.tx_mac_ctrl_frames = stats.tx_mac_ctrl_frames;
 | 
						edev->stats.tx_mac_ctrl_frames = stats.tx_mac_ctrl_frames;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static
 | 
					static void qede_get_stats64(struct net_device *dev,
 | 
				
			||||||
struct rtnl_link_stats64 *qede_get_stats64(struct net_device *dev,
 | 
								     struct rtnl_link_stats64 *stats)
 | 
				
			||||||
					   struct rtnl_link_stats64 *stats)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct qede_dev *edev = netdev_priv(dev);
 | 
						struct qede_dev *edev = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -430,8 +429,6 @@ struct rtnl_link_stats64 *qede_get_stats64(struct net_device *dev,
 | 
				
			||||||
	stats->collisions = edev->stats.tx_total_collisions;
 | 
						stats->collisions = edev->stats.tx_total_collisions;
 | 
				
			||||||
	stats->rx_crc_errors = edev->stats.rx_crc_errors;
 | 
						stats->rx_crc_errors = edev->stats.rx_crc_errors;
 | 
				
			||||||
	stats->rx_frame_errors = edev->stats.rx_align_errors;
 | 
						stats->rx_frame_errors = edev->stats.rx_align_errors;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_QED_SRIOV
 | 
					#ifdef CONFIG_QED_SRIOV
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -312,8 +312,8 @@ static int emac_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Provide network statistics info for the interface */
 | 
					/* Provide network statistics info for the interface */
 | 
				
			||||||
static struct rtnl_link_stats64 *emac_get_stats64(struct net_device *netdev,
 | 
					static void emac_get_stats64(struct net_device *netdev,
 | 
				
			||||||
						  struct rtnl_link_stats64 *net_stats)
 | 
								     struct rtnl_link_stats64 *net_stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct emac_adapter *adpt = netdev_priv(netdev);
 | 
						struct emac_adapter *adpt = netdev_priv(netdev);
 | 
				
			||||||
	unsigned int addr = REG_MAC_RX_STATUS_BIN;
 | 
						unsigned int addr = REG_MAC_RX_STATUS_BIN;
 | 
				
			||||||
| 
						 | 
					@ -377,8 +377,6 @@ static struct rtnl_link_stats64 *emac_get_stats64(struct net_device *netdev,
 | 
				
			||||||
	net_stats->tx_window_errors = stats->tx_late_col;
 | 
						net_stats->tx_window_errors = stats->tx_late_col;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_unlock(&stats->lock);
 | 
						spin_unlock(&stats->lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return net_stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct net_device_ops emac_netdev_ops = {
 | 
					static const struct net_device_ops emac_netdev_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -653,9 +653,8 @@ static int rtl8139_poll(struct napi_struct *napi, int budget);
 | 
				
			||||||
static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance);
 | 
					static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance);
 | 
				
			||||||
static int rtl8139_close (struct net_device *dev);
 | 
					static int rtl8139_close (struct net_device *dev);
 | 
				
			||||||
static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
 | 
					static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
 | 
				
			||||||
static struct rtnl_link_stats64 *rtl8139_get_stats64(struct net_device *dev,
 | 
					static void rtl8139_get_stats64(struct net_device *dev,
 | 
				
			||||||
						    struct rtnl_link_stats64
 | 
									struct rtnl_link_stats64 *stats);
 | 
				
			||||||
						    *stats);
 | 
					 | 
				
			||||||
static void rtl8139_set_rx_mode (struct net_device *dev);
 | 
					static void rtl8139_set_rx_mode (struct net_device *dev);
 | 
				
			||||||
static void __set_rx_mode (struct net_device *dev);
 | 
					static void __set_rx_mode (struct net_device *dev);
 | 
				
			||||||
static void rtl8139_hw_start (struct net_device *dev);
 | 
					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)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct rtl8139_private *tp = netdev_priv(dev);
 | 
						struct rtl8139_private *tp = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -2544,8 +2543,6 @@ rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
		stats->tx_packets = tp->tx_stats.packets;
 | 
							stats->tx_packets = tp->tx_stats.packets;
 | 
				
			||||||
		stats->tx_bytes = tp->tx_stats.bytes;
 | 
							stats->tx_bytes = tp->tx_stats.bytes;
 | 
				
			||||||
	} while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start));
 | 
						} while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start));
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Set or clear the multicast filter for this adaptor.
 | 
					/* Set or clear the multicast filter for this adaptor.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7755,7 +7755,7 @@ static int rtl_open(struct net_device *dev)
 | 
				
			||||||
	goto out;
 | 
						goto out;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct rtl8169_private *tp = netdev_priv(dev);
 | 
						struct rtl8169_private *tp = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -7809,8 +7809,6 @@ rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
		le16_to_cpu(tp->tc_offset.tx_aborted);
 | 
							le16_to_cpu(tp->tc_offset.tx_aborted);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pm_runtime_put_noidle(&pdev->dev);
 | 
						pm_runtime_put_noidle(&pdev->dev);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void rtl8169_net_suspend(struct net_device *dev)
 | 
					static void rtl8169_net_suspend(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1706,11 +1706,9 @@ static inline u64 sxgbe_get_stat64(void __iomem *ioaddr, int reg_lo, int reg_hi)
 | 
				
			||||||
 *  This function is a driver entry point whenever ifconfig command gets
 | 
					 *  This function is a driver entry point whenever ifconfig command gets
 | 
				
			||||||
 *  executed to see device statistics. Statistics are number of
 | 
					 *  executed to see device statistics. Statistics are number of
 | 
				
			||||||
 *  bytes sent or received, errors occurred etc.
 | 
					 *  bytes sent or received, errors occurred etc.
 | 
				
			||||||
 *  Return value:
 | 
					 | 
				
			||||||
 *  This function returns various statistical information of device.
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct rtnl_link_stats64 *sxgbe_get_stats64(struct net_device *dev,
 | 
					static void sxgbe_get_stats64(struct net_device *dev,
 | 
				
			||||||
						   struct rtnl_link_stats64 *stats)
 | 
								      struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct sxgbe_priv_data *priv = netdev_priv(dev);
 | 
						struct sxgbe_priv_data *priv = netdev_priv(dev);
 | 
				
			||||||
	void __iomem *ioaddr = priv->ioaddr;
 | 
						void __iomem *ioaddr = priv->ioaddr;
 | 
				
			||||||
| 
						 | 
					@ -1761,8 +1759,6 @@ static struct rtnl_link_stats64 *sxgbe_get_stats64(struct net_device *dev,
 | 
				
			||||||
						 SXGBE_MMC_TXUFLWHI_GBCNT_REG);
 | 
											 SXGBE_MMC_TXUFLWHI_GBCNT_REG);
 | 
				
			||||||
	writel(0, ioaddr + SXGBE_MMC_CTL_REG);
 | 
						writel(0, ioaddr + SXGBE_MMC_CTL_REG);
 | 
				
			||||||
	spin_unlock(&priv->stats_lock);
 | 
						spin_unlock(&priv->stats_lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*  sxgbe_set_features - entry point to set offload features of the device.
 | 
					/*  sxgbe_set_features - entry point to set offload features of the device.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2219,16 +2219,14 @@ int efx_net_stop(struct net_device *net_dev)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Context: process, dev_base_lock or RTNL held, non-blocking. */
 | 
					/* Context: process, dev_base_lock or RTNL held, non-blocking. */
 | 
				
			||||||
static struct rtnl_link_stats64 *efx_net_stats(struct net_device *net_dev,
 | 
					static void efx_net_stats(struct net_device *net_dev,
 | 
				
			||||||
					       struct rtnl_link_stats64 *stats)
 | 
								  struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct efx_nic *efx = netdev_priv(net_dev);
 | 
						struct efx_nic *efx = netdev_priv(net_dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_lock_bh(&efx->stats_lock);
 | 
						spin_lock_bh(&efx->stats_lock);
 | 
				
			||||||
	efx->type->update_stats(efx, NULL, stats);
 | 
						efx->type->update_stats(efx, NULL, stats);
 | 
				
			||||||
	spin_unlock_bh(&efx->stats_lock);
 | 
						spin_unlock_bh(&efx->stats_lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Context: netif_tx_lock held, BHs disabled. */
 | 
					/* Context: netif_tx_lock held, BHs disabled. */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2158,16 +2158,14 @@ int ef4_net_stop(struct net_device *net_dev)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Context: process, dev_base_lock or RTNL held, non-blocking. */
 | 
					/* Context: process, dev_base_lock or RTNL held, non-blocking. */
 | 
				
			||||||
static struct rtnl_link_stats64 *ef4_net_stats(struct net_device *net_dev,
 | 
					static void ef4_net_stats(struct net_device *net_dev,
 | 
				
			||||||
					       struct rtnl_link_stats64 *stats)
 | 
								  struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ef4_nic *efx = netdev_priv(net_dev);
 | 
						struct ef4_nic *efx = netdev_priv(net_dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_lock_bh(&efx->stats_lock);
 | 
						spin_lock_bh(&efx->stats_lock);
 | 
				
			||||||
	efx->type->update_stats(efx, NULL, stats);
 | 
						efx->type->update_stats(efx, NULL, stats);
 | 
				
			||||||
	spin_unlock_bh(&efx->stats_lock);
 | 
						spin_unlock_bh(&efx->stats_lock);
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Context: netif_tx_lock held, BHs disabled. */
 | 
					/* Context: netif_tx_lock held, BHs disabled. */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6294,8 +6294,8 @@ static void niu_get_tx_stats(struct niu *np,
 | 
				
			||||||
	stats->tx_errors = errors;
 | 
						stats->tx_errors = errors;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *niu_get_stats(struct net_device *dev,
 | 
					static void niu_get_stats(struct net_device *dev,
 | 
				
			||||||
					       struct rtnl_link_stats64 *stats)
 | 
								  struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct niu *np = netdev_priv(dev);
 | 
						struct niu *np = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6303,8 +6303,6 @@ static struct rtnl_link_stats64 *niu_get_stats(struct net_device *dev,
 | 
				
			||||||
		niu_get_rx_stats(np, stats);
 | 
							niu_get_rx_stats(np, stats);
 | 
				
			||||||
		niu_get_tx_stats(np, stats);
 | 
							niu_get_tx_stats(np, stats);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void niu_load_hash_xmac(struct niu *np, u16 *hash)
 | 
					static void niu_load_hash_xmac(struct niu *np, u16 *hash)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2490,7 +2490,7 @@ static void dwceqos_read_mmc_counters(struct net_local *lp, u32 rx_mask,
 | 
				
			||||||
			dwceqos_read(lp, DWC_MMC_RXPACKETCOUNT_GB);
 | 
								dwceqos_read(lp, DWC_MMC_RXPACKETCOUNT_GB);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64*
 | 
					static void
 | 
				
			||||||
dwceqos_get_stats64(struct net_device *ndev, struct rtnl_link_stats64 *s)
 | 
					dwceqos_get_stats64(struct net_device *ndev, struct rtnl_link_stats64 *s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	unsigned long flags;
 | 
						unsigned long flags;
 | 
				
			||||||
| 
						 | 
					@ -2522,8 +2522,6 @@ dwceqos_get_stats64(struct net_device *ndev, struct rtnl_link_stats64 *s)
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		s->tx_errors = hwstats->txunderflowerror +
 | 
							s->tx_errors = hwstats->txunderflowerror +
 | 
				
			||||||
			hwstats->txcarriererror;
 | 
								hwstats->txcarriererror;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return s;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2047,8 +2047,8 @@ static int tile_net_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Returns the address of the device statistics structure.
 | 
					 * Returns the address of the device statistics structure.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct rtnl_link_stats64 *tile_net_get_stats64(struct net_device *dev,
 | 
					static void tile_net_get_stats64(struct net_device *dev,
 | 
				
			||||||
		struct rtnl_link_stats64 *stats)
 | 
									 struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct tile_net_priv *priv = netdev_priv(dev);
 | 
						struct tile_net_priv *priv = netdev_priv(dev);
 | 
				
			||||||
	u64 rx_packets = 0, tx_packets = 0;
 | 
						u64 rx_packets = 0, tx_packets = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -513,8 +513,8 @@ static irqreturn_t rhine_interrupt(int irq, void *dev_instance);
 | 
				
			||||||
static void rhine_tx(struct net_device *dev);
 | 
					static void rhine_tx(struct net_device *dev);
 | 
				
			||||||
static int rhine_rx(struct net_device *dev, int limit);
 | 
					static int rhine_rx(struct net_device *dev, int limit);
 | 
				
			||||||
static void rhine_set_rx_mode(struct net_device *dev);
 | 
					static void rhine_set_rx_mode(struct net_device *dev);
 | 
				
			||||||
static struct rtnl_link_stats64 *rhine_get_stats64(struct net_device *dev,
 | 
					static void rhine_get_stats64(struct net_device *dev,
 | 
				
			||||||
	       struct rtnl_link_stats64 *stats);
 | 
								      struct rtnl_link_stats64 *stats);
 | 
				
			||||||
static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
 | 
					static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
 | 
				
			||||||
static const struct ethtool_ops netdev_ethtool_ops;
 | 
					static const struct ethtool_ops netdev_ethtool_ops;
 | 
				
			||||||
static int  rhine_close(struct net_device *dev);
 | 
					static int  rhine_close(struct net_device *dev);
 | 
				
			||||||
| 
						 | 
					@ -2221,7 +2221,7 @@ static void rhine_slow_event_task(struct work_struct *work)
 | 
				
			||||||
	mutex_unlock(&rp->task_lock);
 | 
						mutex_unlock(&rp->task_lock);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
rhine_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					rhine_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct rhine_private *rp = netdev_priv(dev);
 | 
						struct rhine_private *rp = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -2244,8 +2244,6 @@ rhine_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
		stats->tx_packets = rp->tx_stats.packets;
 | 
							stats->tx_packets = rp->tx_stats.packets;
 | 
				
			||||||
		stats->tx_bytes = rp->tx_stats.bytes;
 | 
							stats->tx_bytes = rp->tx_stats.bytes;
 | 
				
			||||||
	} while (u64_stats_fetch_retry_irq(&rp->tx_stats.syncp, start));
 | 
						} while (u64_stats_fetch_retry_irq(&rp->tx_stats.syncp, start));
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void rhine_set_rx_mode(struct net_device *dev)
 | 
					static void rhine_set_rx_mode(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,8 +57,7 @@ static void fjes_raise_intr_rxdata_task(struct work_struct *);
 | 
				
			||||||
static void fjes_tx_stall_task(struct work_struct *);
 | 
					static void fjes_tx_stall_task(struct work_struct *);
 | 
				
			||||||
static void fjes_force_close_task(struct work_struct *);
 | 
					static void fjes_force_close_task(struct work_struct *);
 | 
				
			||||||
static irqreturn_t fjes_intr(int, void*);
 | 
					static irqreturn_t fjes_intr(int, void*);
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void fjes_get_stats64(struct net_device *, struct rtnl_link_stats64 *);
 | 
				
			||||||
fjes_get_stats64(struct net_device *, struct rtnl_link_stats64 *);
 | 
					 | 
				
			||||||
static int fjes_change_mtu(struct net_device *, int);
 | 
					static int fjes_change_mtu(struct net_device *, int);
 | 
				
			||||||
static int fjes_vlan_rx_add_vid(struct net_device *, __be16 proto, u16);
 | 
					static int fjes_vlan_rx_add_vid(struct net_device *, __be16 proto, u16);
 | 
				
			||||||
static int fjes_vlan_rx_kill_vid(struct net_device *, __be16 proto, u16);
 | 
					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)
 | 
				
			||||||
	netif_tx_wake_queue(queue);
 | 
						netif_tx_wake_queue(queue);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
fjes_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
 | 
					fjes_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct fjes_adapter *adapter = netdev_priv(netdev);
 | 
						struct fjes_adapter *adapter = netdev_priv(netdev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memcpy(stats, &adapter->stats64, sizeof(struct rtnl_link_stats64));
 | 
						memcpy(stats, &adapter->stats64, sizeof(struct rtnl_link_stats64));
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int fjes_change_mtu(struct net_device *netdev, int new_mtu)
 | 
					static int fjes_change_mtu(struct net_device *netdev, int new_mtu)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -908,8 +908,8 @@ static int netvsc_change_mtu(struct net_device *ndev, int mtu)
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *netvsc_get_stats64(struct net_device *net,
 | 
					static void netvsc_get_stats64(struct net_device *net,
 | 
				
			||||||
						    struct rtnl_link_stats64 *t)
 | 
								       struct rtnl_link_stats64 *t)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct net_device_context *ndev_ctx = netdev_priv(net);
 | 
						struct net_device_context *ndev_ctx = netdev_priv(net);
 | 
				
			||||||
	int cpu;
 | 
						int cpu;
 | 
				
			||||||
| 
						 | 
					@ -947,8 +947,6 @@ static struct rtnl_link_stats64 *netvsc_get_stats64(struct net_device *net,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	t->rx_dropped	= net->stats.rx_dropped;
 | 
						t->rx_dropped	= net->stats.rx_dropped;
 | 
				
			||||||
	t->rx_errors	= net->stats.rx_errors;
 | 
						t->rx_errors	= net->stats.rx_errors;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return t;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int netvsc_set_mac_addr(struct net_device *ndev, void *p)
 | 
					static int netvsc_set_mac_addr(struct net_device *ndev, void *p)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -129,8 +129,8 @@ static void ifb_ri_tasklet(unsigned long _txp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *ifb_stats64(struct net_device *dev,
 | 
					static void ifb_stats64(struct net_device *dev,
 | 
				
			||||||
					     struct rtnl_link_stats64 *stats)
 | 
								struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ifb_dev_private *dp = netdev_priv(dev);
 | 
						struct ifb_dev_private *dp = netdev_priv(dev);
 | 
				
			||||||
	struct ifb_q_private *txp = dp->tx_private;
 | 
						struct ifb_q_private *txp = dp->tx_private;
 | 
				
			||||||
| 
						 | 
					@ -157,8 +157,6 @@ static struct rtnl_link_stats64 *ifb_stats64(struct net_device *dev,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	stats->rx_dropped = dev->stats.rx_dropped;
 | 
						stats->rx_dropped = dev->stats.rx_dropped;
 | 
				
			||||||
	stats->tx_dropped = dev->stats.tx_dropped;
 | 
						stats->tx_dropped = dev->stats.tx_dropped;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ifb_dev_init(struct net_device *dev)
 | 
					static int ifb_dev_init(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -303,8 +303,8 @@ static void ipvlan_set_multicast_mac_filter(struct net_device *dev)
 | 
				
			||||||
	dev_mc_sync(ipvlan->phy_dev, dev);
 | 
						dev_mc_sync(ipvlan->phy_dev, dev);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *ipvlan_get_stats64(struct net_device *dev,
 | 
					static void ipvlan_get_stats64(struct net_device *dev,
 | 
				
			||||||
						    struct rtnl_link_stats64 *s)
 | 
								       struct rtnl_link_stats64 *s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ipvl_dev *ipvlan = netdev_priv(dev);
 | 
						struct ipvl_dev *ipvlan = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -341,7 +341,6 @@ static struct rtnl_link_stats64 *ipvlan_get_stats64(struct net_device *dev,
 | 
				
			||||||
		s->rx_dropped = rx_errs;
 | 
							s->rx_dropped = rx_errs;
 | 
				
			||||||
		s->tx_dropped = tx_drps;
 | 
							s->tx_dropped = tx_drps;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return s;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ipvlan_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
 | 
					static int ipvlan_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,8 +97,8 @@ static netdev_tx_t loopback_xmit(struct sk_buff *skb,
 | 
				
			||||||
	return NETDEV_TX_OK;
 | 
						return NETDEV_TX_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *loopback_get_stats64(struct net_device *dev,
 | 
					static void loopback_get_stats64(struct net_device *dev,
 | 
				
			||||||
						      struct rtnl_link_stats64 *stats)
 | 
									 struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u64 bytes = 0;
 | 
						u64 bytes = 0;
 | 
				
			||||||
	u64 packets = 0;
 | 
						u64 packets = 0;
 | 
				
			||||||
| 
						 | 
					@ -122,7 +122,6 @@ static struct rtnl_link_stats64 *loopback_get_stats64(struct net_device *dev,
 | 
				
			||||||
	stats->tx_packets = packets;
 | 
						stats->tx_packets = packets;
 | 
				
			||||||
	stats->rx_bytes   = bytes;
 | 
						stats->rx_bytes   = bytes;
 | 
				
			||||||
	stats->tx_bytes   = bytes;
 | 
						stats->tx_bytes   = bytes;
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static u32 always_on(struct net_device *dev)
 | 
					static u32 always_on(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2888,13 +2888,13 @@ static int macsec_change_mtu(struct net_device *dev, int new_mtu)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *macsec_get_stats64(struct net_device *dev,
 | 
					static void macsec_get_stats64(struct net_device *dev,
 | 
				
			||||||
						    struct rtnl_link_stats64 *s)
 | 
								       struct rtnl_link_stats64 *s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int cpu;
 | 
						int cpu;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!dev->tstats)
 | 
						if (!dev->tstats)
 | 
				
			||||||
		return s;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for_each_possible_cpu(cpu) {
 | 
						for_each_possible_cpu(cpu) {
 | 
				
			||||||
		struct pcpu_sw_netstats *stats;
 | 
							struct pcpu_sw_netstats *stats;
 | 
				
			||||||
| 
						 | 
					@ -2918,8 +2918,6 @@ static struct rtnl_link_stats64 *macsec_get_stats64(struct net_device *dev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	s->rx_dropped = dev->stats.rx_dropped;
 | 
						s->rx_dropped = dev->stats.rx_dropped;
 | 
				
			||||||
	s->tx_dropped = dev->stats.tx_dropped;
 | 
						s->tx_dropped = dev->stats.tx_dropped;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return s;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int macsec_get_iflink(const struct net_device *dev)
 | 
					static int macsec_get_iflink(const struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -855,8 +855,8 @@ static void macvlan_uninit(struct net_device *dev)
 | 
				
			||||||
		macvlan_port_destroy(port->dev);
 | 
							macvlan_port_destroy(port->dev);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *macvlan_dev_get_stats64(struct net_device *dev,
 | 
					static void macvlan_dev_get_stats64(struct net_device *dev,
 | 
				
			||||||
							 struct rtnl_link_stats64 *stats)
 | 
									    struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct macvlan_dev *vlan = netdev_priv(dev);
 | 
						struct macvlan_dev *vlan = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -893,7 +893,6 @@ static struct rtnl_link_stats64 *macvlan_dev_get_stats64(struct net_device *dev,
 | 
				
			||||||
		stats->rx_dropped	= rx_errors;
 | 
							stats->rx_dropped	= rx_errors;
 | 
				
			||||||
		stats->tx_dropped	= tx_dropped;
 | 
							stats->tx_dropped	= tx_dropped;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int macvlan_vlan_rx_add_vid(struct net_device *dev,
 | 
					static int macvlan_vlan_rx_add_vid(struct net_device *dev,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,7 +58,7 @@ static int nlmon_close(struct net_device *dev)
 | 
				
			||||||
	return netlink_remove_tap(&nlmon->nt);
 | 
						return netlink_remove_tap(&nlmon->nt);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
nlmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					nlmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
| 
						 | 
					@ -86,8 +86,6 @@ nlmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stats->rx_bytes = bytes;
 | 
						stats->rx_bytes = bytes;
 | 
				
			||||||
	stats->tx_bytes = 0;
 | 
						stats->tx_bytes = 0;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static u32 always_on(struct net_device *dev)
 | 
					static u32 always_on(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1297,7 +1297,7 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 | 
				
			||||||
	return err;
 | 
						return err;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64*
 | 
					static void
 | 
				
			||||||
ppp_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats64)
 | 
					ppp_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats64)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct ppp *ppp = netdev_priv(dev);
 | 
						struct ppp *ppp = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -1317,8 +1317,6 @@ ppp_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats64)
 | 
				
			||||||
	stats64->rx_dropped       = dev->stats.rx_dropped;
 | 
						stats64->rx_dropped       = dev->stats.rx_dropped;
 | 
				
			||||||
	stats64->tx_dropped       = dev->stats.tx_dropped;
 | 
						stats64->tx_dropped       = dev->stats.tx_dropped;
 | 
				
			||||||
	stats64->rx_length_errors = dev->stats.rx_length_errors;
 | 
						stats64->rx_length_errors = dev->stats.rx_length_errors;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats64;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ppp_dev_init(struct net_device *dev)
 | 
					static int ppp_dev_init(struct net_device *dev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -566,7 +566,7 @@ static int sl_change_mtu(struct net_device *dev, int new_mtu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Netdevice get statistics request */
 | 
					/* Netdevice get statistics request */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
sl_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					sl_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct net_device_stats *devstats = &dev->stats;
 | 
						struct net_device_stats *devstats = &dev->stats;
 | 
				
			||||||
| 
						 | 
					@ -597,7 +597,6 @@ sl_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
		stats->collisions     += comp->sls_o_misses;
 | 
							stats->collisions     += comp->sls_o_misses;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Netdevice register callback */
 | 
					/* Netdevice register callback */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1798,7 +1798,7 @@ static int team_change_mtu(struct net_device *dev, int new_mtu)
 | 
				
			||||||
	return err;
 | 
						return err;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct team *team = netdev_priv(dev);
 | 
						struct team *team = netdev_priv(dev);
 | 
				
			||||||
| 
						 | 
					@ -1835,7 +1835,6 @@ team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
	stats->rx_dropped	= rx_dropped;
 | 
						stats->rx_dropped	= rx_dropped;
 | 
				
			||||||
	stats->tx_dropped	= tx_dropped;
 | 
						stats->tx_dropped	= tx_dropped;
 | 
				
			||||||
	stats->rx_nohandler	= rx_nohandler;
 | 
						stats->rx_nohandler	= rx_nohandler;
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int team_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
 | 
					static int team_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -953,7 +953,7 @@ static void tun_set_headroom(struct net_device *dev, int new_hr)
 | 
				
			||||||
	tun->align = new_hr;
 | 
						tun->align = new_hr;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
tun_net_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					tun_net_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u32 rx_dropped = 0, tx_dropped = 0, rx_frame_errors = 0;
 | 
						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)
 | 
				
			||||||
	stats->rx_dropped  = rx_dropped;
 | 
						stats->rx_dropped  = rx_dropped;
 | 
				
			||||||
	stats->rx_frame_errors = rx_frame_errors;
 | 
						stats->rx_frame_errors = rx_frame_errors;
 | 
				
			||||||
	stats->tx_dropped = tx_dropped;
 | 
						stats->tx_dropped = tx_dropped;
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct net_device_ops tun_netdev_ops = {
 | 
					static const struct net_device_ops tun_netdev_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -158,8 +158,8 @@ static u64 veth_stats_one(struct pcpu_vstats *result, struct net_device *dev)
 | 
				
			||||||
	return atomic64_read(&priv->dropped);
 | 
						return atomic64_read(&priv->dropped);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *veth_get_stats64(struct net_device *dev,
 | 
					static void veth_get_stats64(struct net_device *dev,
 | 
				
			||||||
						  struct rtnl_link_stats64 *tot)
 | 
								     struct rtnl_link_stats64 *tot)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct veth_priv *priv = netdev_priv(dev);
 | 
						struct veth_priv *priv = netdev_priv(dev);
 | 
				
			||||||
	struct net_device *peer;
 | 
						struct net_device *peer;
 | 
				
			||||||
| 
						 | 
					@ -177,8 +177,6 @@ static struct rtnl_link_stats64 *veth_get_stats64(struct net_device *dev,
 | 
				
			||||||
		tot->rx_packets = one.packets;
 | 
							tot->rx_packets = one.packets;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	rcu_read_unlock();
 | 
						rcu_read_unlock();
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return tot;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* fake multicast ability */
 | 
					/* fake multicast ability */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1272,8 +1272,8 @@ static int virtnet_set_mac_address(struct net_device *dev, void *p)
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *virtnet_stats(struct net_device *dev,
 | 
					static void virtnet_stats(struct net_device *dev,
 | 
				
			||||||
					       struct rtnl_link_stats64 *tot)
 | 
								  struct rtnl_link_stats64 *tot)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct virtnet_info *vi = netdev_priv(dev);
 | 
						struct virtnet_info *vi = netdev_priv(dev);
 | 
				
			||||||
	int cpu;
 | 
						int cpu;
 | 
				
			||||||
| 
						 | 
					@ -1306,8 +1306,6 @@ static struct rtnl_link_stats64 *virtnet_stats(struct net_device *dev,
 | 
				
			||||||
	tot->rx_dropped = dev->stats.rx_dropped;
 | 
						tot->rx_dropped = dev->stats.rx_dropped;
 | 
				
			||||||
	tot->rx_length_errors = dev->stats.rx_length_errors;
 | 
						tot->rx_length_errors = dev->stats.rx_length_errors;
 | 
				
			||||||
	tot->rx_frame_errors = dev->stats.rx_frame_errors;
 | 
						tot->rx_frame_errors = dev->stats.rx_frame_errors;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return tot;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_NET_POLL_CONTROLLER
 | 
					#ifdef CONFIG_NET_POLL_CONTROLLER
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -113,7 +113,7 @@ vmxnet3_global_stats[] = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct rtnl_link_stats64 *
 | 
					void
 | 
				
			||||||
vmxnet3_get_stats64(struct net_device *netdev,
 | 
					vmxnet3_get_stats64(struct net_device *netdev,
 | 
				
			||||||
		   struct rtnl_link_stats64 *stats)
 | 
							   struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -160,8 +160,6 @@ vmxnet3_get_stats64(struct net_device *netdev,
 | 
				
			||||||
		stats->rx_dropped += drvRxStats->drop_total;
 | 
							stats->rx_dropped += drvRxStats->drop_total;
 | 
				
			||||||
		stats->multicast +=  devRxStats->mcastPktsRxOK;
 | 
							stats->multicast +=  devRxStats->mcastPktsRxOK;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int
 | 
					static int
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -465,8 +465,8 @@ vmxnet3_create_queues(struct vmxnet3_adapter *adapter,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void vmxnet3_set_ethtool_ops(struct net_device *netdev);
 | 
					void vmxnet3_set_ethtool_ops(struct net_device *netdev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct rtnl_link_stats64 *
 | 
					void vmxnet3_get_stats64(struct net_device *dev,
 | 
				
			||||||
vmxnet3_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats);
 | 
								 struct rtnl_link_stats64 *stats);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern char vmxnet3_driver_name[];
 | 
					extern char vmxnet3_driver_name[];
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,8 +77,8 @@ static void vrf_tx_error(struct net_device *vrf_dev, struct sk_buff *skb)
 | 
				
			||||||
	kfree_skb(skb);
 | 
						kfree_skb(skb);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *vrf_get_stats64(struct net_device *dev,
 | 
					static void vrf_get_stats64(struct net_device *dev,
 | 
				
			||||||
						 struct rtnl_link_stats64 *stats)
 | 
								    struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -102,7 +102,6 @@ static struct rtnl_link_stats64 *vrf_get_stats64(struct net_device *dev,
 | 
				
			||||||
		stats->rx_bytes += rbytes;
 | 
							stats->rx_bytes += rbytes;
 | 
				
			||||||
		stats->rx_packets += rpkts;
 | 
							stats->rx_packets += rpkts;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Local traffic destined to local address. Reinsert the packet to rx
 | 
					/* Local traffic destined to local address. Reinsert the packet to rx
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1073,8 +1073,8 @@ static int xennet_change_mtu(struct net_device *dev, int mtu)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *xennet_get_stats64(struct net_device *dev,
 | 
					static void xennet_get_stats64(struct net_device *dev,
 | 
				
			||||||
						    struct rtnl_link_stats64 *tot)
 | 
								       struct rtnl_link_stats64 *tot)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct netfront_info *np = netdev_priv(dev);
 | 
						struct netfront_info *np = netdev_priv(dev);
 | 
				
			||||||
	int cpu;
 | 
						int cpu;
 | 
				
			||||||
| 
						 | 
					@ -1105,8 +1105,6 @@ static struct rtnl_link_stats64 *xennet_get_stats64(struct net_device *dev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tot->rx_errors  = dev->stats.rx_errors;
 | 
						tot->rx_errors  = dev->stats.rx_errors;
 | 
				
			||||||
	tot->tx_dropped = dev->stats.tx_dropped;
 | 
						tot->tx_dropped = dev->stats.tx_dropped;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return tot;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void xennet_release_tx_bufs(struct netfront_queue *queue)
 | 
					static void xennet_release_tx_bufs(struct netfront_queue *queue)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -397,14 +397,6 @@ static void xlr_stats(struct net_device *ndev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
			TX_DROP_FRAME_COUNTER);
 | 
								TX_DROP_FRAME_COUNTER);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *xlr_get_stats64(struct net_device *ndev,
 | 
					 | 
				
			||||||
						 struct rtnl_link_stats64 *stats
 | 
					 | 
				
			||||||
						 )
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	xlr_stats(ndev, stats);
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static const struct net_device_ops xlr_netdev_ops = {
 | 
					static const struct net_device_ops xlr_netdev_ops = {
 | 
				
			||||||
	.ndo_open = xlr_net_open,
 | 
						.ndo_open = xlr_net_open,
 | 
				
			||||||
	.ndo_stop = xlr_net_stop,
 | 
						.ndo_stop = xlr_net_stop,
 | 
				
			||||||
| 
						 | 
					@ -412,7 +404,7 @@ static const struct net_device_ops xlr_netdev_ops = {
 | 
				
			||||||
	.ndo_select_queue = xlr_net_select_queue,
 | 
						.ndo_select_queue = xlr_net_select_queue,
 | 
				
			||||||
	.ndo_set_mac_address = xlr_net_set_mac_addr,
 | 
						.ndo_set_mac_address = xlr_net_set_mac_addr,
 | 
				
			||||||
	.ndo_set_rx_mode = xlr_set_rx_mode,
 | 
						.ndo_set_rx_mode = xlr_set_rx_mode,
 | 
				
			||||||
	.ndo_get_stats64 = xlr_get_stats64,
 | 
						.ndo_get_stats64 = xlr_stats,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -913,8 +913,8 @@ struct netdev_xdp {
 | 
				
			||||||
 *	Callback used when the transmitter has not made any progress
 | 
					 *	Callback used when the transmitter has not made any progress
 | 
				
			||||||
 *	for dev->watchdog ticks.
 | 
					 *	for dev->watchdog ticks.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev,
 | 
					 * void (*ndo_get_stats64)(struct net_device *dev,
 | 
				
			||||||
 *                      struct rtnl_link_stats64 *storage);
 | 
					 *                         struct rtnl_link_stats64 *storage);
 | 
				
			||||||
 * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);
 | 
					 * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);
 | 
				
			||||||
 *	Called when a user wants to get the network device usage
 | 
					 *	Called when a user wants to get the network device usage
 | 
				
			||||||
 *	statistics. Drivers must do one of the following:
 | 
					 *	statistics. Drivers must do one of the following:
 | 
				
			||||||
| 
						 | 
					@ -1165,8 +1165,8 @@ struct net_device_ops {
 | 
				
			||||||
						   struct neigh_parms *);
 | 
											   struct neigh_parms *);
 | 
				
			||||||
	void			(*ndo_tx_timeout) (struct net_device *dev);
 | 
						void			(*ndo_tx_timeout) (struct net_device *dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev,
 | 
						void			(*ndo_get_stats64)(struct net_device *dev,
 | 
				
			||||||
						     struct rtnl_link_stats64 *storage);
 | 
											   struct rtnl_link_stats64 *storage);
 | 
				
			||||||
	bool			(*ndo_has_offload_stats)(const struct net_device *dev, int attr_id);
 | 
						bool			(*ndo_has_offload_stats)(const struct net_device *dev, int attr_id);
 | 
				
			||||||
	int			(*ndo_get_offload_stats)(int attr_id,
 | 
						int			(*ndo_get_offload_stats)(int attr_id,
 | 
				
			||||||
							 const struct net_device *dev,
 | 
												 const struct net_device *dev,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -261,8 +261,8 @@ int ip_tunnel_ioctl(struct net_device *dev, struct ip_tunnel_parm *p, int cmd);
 | 
				
			||||||
int __ip_tunnel_change_mtu(struct net_device *dev, int new_mtu, bool strict);
 | 
					int __ip_tunnel_change_mtu(struct net_device *dev, int new_mtu, bool strict);
 | 
				
			||||||
int ip_tunnel_change_mtu(struct net_device *dev, int new_mtu);
 | 
					int ip_tunnel_change_mtu(struct net_device *dev, int new_mtu);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct rtnl_link_stats64 *ip_tunnel_get_stats64(struct net_device *dev,
 | 
					void ip_tunnel_get_stats64(struct net_device *dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *tot);
 | 
								   struct rtnl_link_stats64 *tot);
 | 
				
			||||||
struct ip_tunnel *ip_tunnel_lookup(struct ip_tunnel_net *itn,
 | 
					struct ip_tunnel *ip_tunnel_lookup(struct ip_tunnel_net *itn,
 | 
				
			||||||
				   int link, __be16 flags,
 | 
									   int link, __be16 flags,
 | 
				
			||||||
				   __be32 remote, __be32 local,
 | 
									   __be32 remote, __be32 local,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -671,7 +671,8 @@ static int vlan_ethtool_get_ts_info(struct net_device *dev,
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *vlan_dev_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					static void vlan_dev_get_stats64(struct net_device *dev,
 | 
				
			||||||
 | 
									 struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct vlan_pcpu_stats *p;
 | 
						struct vlan_pcpu_stats *p;
 | 
				
			||||||
	u32 rx_errors = 0, tx_dropped = 0;
 | 
						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
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	stats->rx_errors  = rx_errors;
 | 
						stats->rx_errors  = rx_errors;
 | 
				
			||||||
	stats->tx_dropped = tx_dropped;
 | 
						stats->tx_dropped = tx_dropped;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_NET_POLL_CONTROLLER
 | 
					#ifdef CONFIG_NET_POLL_CONTROLLER
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -153,8 +153,8 @@ static int br_dev_stop(struct net_device *dev)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *br_get_stats64(struct net_device *dev,
 | 
					static void br_get_stats64(struct net_device *dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *stats)
 | 
								   struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct net_bridge *br = netdev_priv(dev);
 | 
						struct net_bridge *br = netdev_priv(dev);
 | 
				
			||||||
	struct pcpu_sw_netstats tmp, sum = { 0 };
 | 
						struct pcpu_sw_netstats tmp, sum = { 0 };
 | 
				
			||||||
| 
						 | 
					@ -178,8 +178,6 @@ static struct rtnl_link_stats64 *br_get_stats64(struct net_device *dev,
 | 
				
			||||||
	stats->tx_packets = sum.tx_packets;
 | 
						stats->tx_packets = sum.tx_packets;
 | 
				
			||||||
	stats->rx_bytes   = sum.rx_bytes;
 | 
						stats->rx_bytes   = sum.rx_bytes;
 | 
				
			||||||
	stats->rx_packets = sum.rx_packets;
 | 
						stats->rx_packets = sum.rx_packets;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int br_change_mtu(struct net_device *dev, int new_mtu)
 | 
					static int br_change_mtu(struct net_device *dev, int new_mtu)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -188,8 +188,8 @@ int iptunnel_handle_offloads(struct sk_buff *skb,
 | 
				
			||||||
EXPORT_SYMBOL_GPL(iptunnel_handle_offloads);
 | 
					EXPORT_SYMBOL_GPL(iptunnel_handle_offloads);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Often modified stats are per cpu, other are shared (netdev->stats) */
 | 
					/* Often modified stats are per cpu, other are shared (netdev->stats) */
 | 
				
			||||||
struct rtnl_link_stats64 *ip_tunnel_get_stats64(struct net_device *dev,
 | 
					void ip_tunnel_get_stats64(struct net_device *dev,
 | 
				
			||||||
						struct rtnl_link_stats64 *tot)
 | 
								   struct rtnl_link_stats64 *tot)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -214,8 +214,6 @@ struct rtnl_link_stats64 *ip_tunnel_get_stats64(struct net_device *dev,
 | 
				
			||||||
		tot->rx_bytes   += rx_bytes;
 | 
							tot->rx_bytes   += rx_bytes;
 | 
				
			||||||
		tot->tx_bytes   += tx_bytes;
 | 
							tot->tx_bytes   += tx_bytes;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return tot;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
EXPORT_SYMBOL_GPL(ip_tunnel_get_stats64);
 | 
					EXPORT_SYMBOL_GPL(ip_tunnel_get_stats64);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -106,8 +106,8 @@ static int l2tp_eth_dev_xmit(struct sk_buff *skb, struct net_device *dev)
 | 
				
			||||||
	return NETDEV_TX_OK;
 | 
						return NETDEV_TX_OK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev,
 | 
					static void l2tp_eth_get_stats64(struct net_device *dev,
 | 
				
			||||||
						      struct rtnl_link_stats64 *stats)
 | 
									 struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct l2tp_eth *priv = netdev_priv(dev);
 | 
						struct l2tp_eth *priv = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -117,10 +117,8 @@ static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev,
 | 
				
			||||||
	stats->rx_bytes   = atomic_long_read(&priv->rx_bytes);
 | 
						stats->rx_bytes   = atomic_long_read(&priv->rx_bytes);
 | 
				
			||||||
	stats->rx_packets = atomic_long_read(&priv->rx_packets);
 | 
						stats->rx_packets = atomic_long_read(&priv->rx_packets);
 | 
				
			||||||
	stats->rx_errors  = atomic_long_read(&priv->rx_errors);
 | 
						stats->rx_errors  = atomic_long_read(&priv->rx_errors);
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
static const struct net_device_ops l2tp_eth_netdev_ops = {
 | 
					static const struct net_device_ops l2tp_eth_netdev_ops = {
 | 
				
			||||||
	.ndo_init		= l2tp_eth_dev_init,
 | 
						.ndo_init		= l2tp_eth_dev_init,
 | 
				
			||||||
	.ndo_uninit		= l2tp_eth_dev_uninit,
 | 
						.ndo_uninit		= l2tp_eth_dev_uninit,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1122,7 +1122,7 @@ static u16 ieee80211_netdev_select_queue(struct net_device *dev,
 | 
				
			||||||
	return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb);
 | 
						return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
ieee80211_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					ieee80211_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
| 
						 | 
					@ -1147,8 +1147,6 @@ ieee80211_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
		stats->rx_bytes   += rx_bytes;
 | 
							stats->rx_bytes   += rx_bytes;
 | 
				
			||||||
		stats->tx_bytes   += tx_bytes;
 | 
							stats->tx_bytes   += tx_bytes;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct net_device_ops ieee80211_dataif_ops = {
 | 
					static const struct net_device_ops ieee80211_dataif_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,7 +97,7 @@ static void internal_dev_destructor(struct net_device *dev)
 | 
				
			||||||
	free_netdev(dev);
 | 
						free_netdev(dev);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *
 | 
					static void
 | 
				
			||||||
internal_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
					internal_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
| 
						 | 
					@ -125,8 +125,6 @@ internal_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 | 
				
			||||||
		stats->tx_bytes         += local_stats.tx_bytes;
 | 
							stats->tx_bytes         += local_stats.tx_bytes;
 | 
				
			||||||
		stats->tx_packets       += local_stats.tx_packets;
 | 
							stats->tx_packets       += local_stats.tx_packets;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void internal_set_rx_headroom(struct net_device *dev, int new_hr)
 | 
					static void internal_set_rx_headroom(struct net_device *dev, int new_hr)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -401,8 +401,8 @@ static int teql_master_close(struct net_device *dev)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct rtnl_link_stats64 *teql_master_stats64(struct net_device *dev,
 | 
					static void teql_master_stats64(struct net_device *dev,
 | 
				
			||||||
						     struct rtnl_link_stats64 *stats)
 | 
									struct rtnl_link_stats64 *stats)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct teql_master *m = netdev_priv(dev);
 | 
						struct teql_master *m = netdev_priv(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -410,7 +410,6 @@ static struct rtnl_link_stats64 *teql_master_stats64(struct net_device *dev,
 | 
				
			||||||
	stats->tx_bytes		= m->tx_bytes;
 | 
						stats->tx_bytes		= m->tx_bytes;
 | 
				
			||||||
	stats->tx_errors	= m->tx_errors;
 | 
						stats->tx_errors	= m->tx_errors;
 | 
				
			||||||
	stats->tx_dropped	= m->tx_dropped;
 | 
						stats->tx_dropped	= m->tx_dropped;
 | 
				
			||||||
	return stats;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int teql_master_mtu(struct net_device *dev, int new_mtu)
 | 
					static int teql_master_mtu(struct net_device *dev, int new_mtu)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue