On Thu, 05 Nov 2020 16:26:58 +0000 Alexander Lobakin wrote: > After updating userspace Ethtool from 5.7 to 5.9, I noticed that > NETDEV_FEAT_CHANGE is no more raised when changing netdev features > through Ethtool. > That's because the old Ethtool ioctl interface always calls > netdev_features_change() at the end of user request processing to > inform the kernel that our netdevice has some features changed, but > the new Netlink interface does not. Instead, it just notifies itself > with ETHTOOL_MSG_FEATURES_NTF. > Replace this ethtool_notify() call with netdev_features_change(), so > the kernel will be aware of any features changes, just like in case > with the ioctl interface. This does not omit Ethtool notifications, > as Ethtool itself listens to NETDEV_FEAT_CHANGE and drops > ETHTOOL_MSG_FEATURES_NTF on it > (net/ethtool/netlink.c:ethnl_netdev_event()). > > Fixes: 0980bfcd6954 ("ethtool: set netdev features with FEATURES_SET request") > Signed-off-by: Alexander Lobakin <aloba...@pm.me>
LGTM, one nit below > diff --git a/net/ethtool/features.c b/net/ethtool/features.c > index 8ee4cdbd6b82..38f526f2125d 100644 > --- a/net/ethtool/features.c > +++ b/net/ethtool/features.c > @@ -279,8 +279,9 @@ int ethnl_set_features(struct sk_buff *skb, struct > genl_info *info) > wanted_diff_mask, new_active, > active_diff_mask, compact); > } > + I think the reply and notification are purposefully grouped, please drop this extra new line. > if (mod) > - ethtool_notify(dev, ETHTOOL_MSG_FEATURES_NTF, NULL); > + netdev_features_change(dev); > > out_rtnl: > rtnl_unlock();