static int fm10k_get_sset_count(struct net_device *dev, int sset) { struct fm10k_intfc *interface = netdev_priv(dev); struct fm10k_iov_data *iov_data = interface->iov_data; struct fm10k_hw *hw = &interface->hw; int stats_len = FM10K_STATIC_STATS_LEN; switch (sset) { case ETH_SS_TEST: return FM10K_TEST_LEN; case ETH_SS_STATS: stats_len += FM10K_QUEUE_STATS_LEN(hw->mac.max_queues); if (hw->mac.type != fm10k_mac_vf) stats_len += FM10K_PF_STATS_LEN; if (interface->flags & FM10K_FLAG_DEBUG_STATS) { stats_len += FM10K_DEBUG_STATS_LEN; if (iov_data) stats_len += FM10K_MBX_STATS_LEN * iov_data->num_vfs; } return stats_len; case ETH_SS_PRIV_FLAGS: return FM10K_PRV_FLAG_LEN; default: return -EOPNOTSUPP; } }
static int fm10k_get_sset_count(struct net_device *dev, int sset) { struct fm10k_intfc *interface = netdev_priv(dev); struct fm10k_hw *hw = &interface->hw; int stats_len = FM10K_STATIC_STATS_LEN; switch (sset) { case ETH_SS_TEST: return FM10K_TEST_LEN; case ETH_SS_STATS: stats_len += FM10K_QUEUE_STATS_LEN(hw->mac.max_queues); if (hw->mac.type != fm10k_mac_vf) stats_len += FM10K_PF_STATS_LEN; return stats_len; default: return -EOPNOTSUPP; } }