> +static void ipqess_get_strings(struct net_device *netdev, u32 stringset, > + u8 *data) > +{ > + u8 *p = data; > + u32 i; > + > + switch (stringset) { > + case ETH_SS_STATS: > + for (i = 0; i < ARRAY_SIZE(ipqess_stats); i++) { > + memcpy(p, ipqess_stats[i].string, > + min((size_t)ETH_GSTRING_LEN, > + strlen(ipqess_stats[i].string) + 1)); That looks pretty similar to strlcpy(). > +static int ipqess_get_settings(struct net_device *netdev, > + struct ethtool_link_ksettings *cmd) It would be traditional to have the k in the name. > +{ > + struct ipqess *ess = netdev_priv(netdev); > + > + return phylink_ethtool_ksettings_get(ess->phylink, cmd); > +} > + > +static int ipqess_set_settings(struct net_device *netdev, > + const struct ethtool_link_ksettings *cmd) > +{ Here too. Andrew