On Fri, Apr 16, 2021 at 12:27:39PM -0700, Jakub Kicinski wrote:
> +static int stats_prepare_data(const struct ethnl_req_info *req_base,
> +                           struct ethnl_reply_data *reply_base,
> +                           struct genl_info *info)
> +{
> +     const struct stats_req_info *req_info = STATS_REQINFO(req_base);
> +     struct stats_reply_data *data = STATS_REPDATA(reply_base);
> +     struct net_device *dev = reply_base->dev;
> +     int ret;
> +
> +     ret = ethnl_ops_begin(dev);
> +     if (ret < 0)
> +             return ret;
> +

Nit: A comment here would be nice. Something like:

Mark all stats as unset (see ETHTOOL_STAT_NOT_SET) to prevent them from
being reported to user space in case driver did not set them.

> +     memset(&data->phy_stats, 0xff, sizeof(data->phy_stats));
> +
> +     if (test_bit(ETHTOOL_STATS_ETH_PHY, req_info->stat_mask) &&
> +         dev->ethtool_ops->get_eth_phy_stats)
> +             dev->ethtool_ops->get_eth_phy_stats(dev, &data->phy_stats);
> +
> +     ethnl_ops_complete(dev);
> +     return 0;
> +}

Reply via email to