netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net] ethtool: netlink: add missing netdev_features_change() call
@ 2020-11-08  0:46 Alexander Lobakin
  2020-11-09 14:00 ` Michal Kubecek
  0 siblings, 1 reply; 3+ messages in thread
From: Alexander Lobakin @ 2020-11-08  0:46 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: Michal Kubecek, Maxim Mikityanskiy, Alexander Lobakin, netdev,
	linux-kernel

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()).

From v1 [1]:
- dropped extra new line as advised by Jakub;
- no functional changes.

[1] https://lore.kernel.org/netdev/AlZXQ2o5uuTVHCfNGOiGgJ8vJ3KgO5YIWAnQjH0cDE@cp3-web-009.plabs.ch

Fixes: 0980bfcd6954 ("ethtool: set netdev features with FEATURES_SET request")
Signed-off-by: Alexander Lobakin <alobakin@pm.me>
---
 net/ethtool/features.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ethtool/features.c b/net/ethtool/features.c
index 8ee4cdbd6b82..1c9f4df273bd 100644
--- a/net/ethtool/features.c
+++ b/net/ethtool/features.c
@@ -280,7 +280,7 @@ int ethnl_set_features(struct sk_buff *skb, struct genl_info *info)
 					  active_diff_mask, compact);
 	}
 	if (mod)
-		ethtool_notify(dev, ETHTOOL_MSG_FEATURES_NTF, NULL);
+		netdev_features_change(dev);
 
 out_rtnl:
 	rtnl_unlock();
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 net] ethtool: netlink: add missing netdev_features_change() call
  2020-11-08  0:46 [PATCH v2 net] ethtool: netlink: add missing netdev_features_change() call Alexander Lobakin
@ 2020-11-09 14:00 ` Michal Kubecek
  2020-11-10  1:18   ` Jakub Kicinski
  0 siblings, 1 reply; 3+ messages in thread
From: Michal Kubecek @ 2020-11-09 14:00 UTC (permalink / raw)
  To: Alexander Lobakin
  Cc: David S. Miller, Jakub Kicinski, Maxim Mikityanskiy, netdev,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1862 bytes --]

On Sun, Nov 08, 2020 at 12:46:15AM +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()).
> 
> From v1 [1]:
> - dropped extra new line as advised by Jakub;
> - no functional changes.
> 
> [1] https://lore.kernel.org/netdev/AlZXQ2o5uuTVHCfNGOiGgJ8vJ3KgO5YIWAnQjH0cDE@cp3-web-009.plabs.ch
> 
> Fixes: 0980bfcd6954 ("ethtool: set netdev features with FEATURES_SET request")
> Signed-off-by: Alexander Lobakin <alobakin@pm.me>

Reviewed-by: Michal Kubecek <mkubecek@suse.cz>

> ---
>  net/ethtool/features.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/ethtool/features.c b/net/ethtool/features.c
> index 8ee4cdbd6b82..1c9f4df273bd 100644
> --- a/net/ethtool/features.c
> +++ b/net/ethtool/features.c
> @@ -280,7 +280,7 @@ int ethnl_set_features(struct sk_buff *skb, struct genl_info *info)
>  					  active_diff_mask, compact);
>  	}
>  	if (mod)
> -		ethtool_notify(dev, ETHTOOL_MSG_FEATURES_NTF, NULL);
> +		netdev_features_change(dev);
>  
>  out_rtnl:
>  	rtnl_unlock();
> -- 
> 2.29.2
> 
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 net] ethtool: netlink: add missing netdev_features_change() call
  2020-11-09 14:00 ` Michal Kubecek
@ 2020-11-10  1:18   ` Jakub Kicinski
  0 siblings, 0 replies; 3+ messages in thread
From: Jakub Kicinski @ 2020-11-10  1:18 UTC (permalink / raw)
  To: Michal Kubecek
  Cc: Alexander Lobakin, David S. Miller, Maxim Mikityanskiy, netdev,
	linux-kernel

On Mon, 9 Nov 2020 15:00:02 +0100 Michal Kubecek wrote:
> On Sun, Nov 08, 2020 at 12:46:15AM +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()).
> > 
> > From v1 [1]:
> > - dropped extra new line as advised by Jakub;
> > - no functional changes.
> > 
> > [1] https://lore.kernel.org/netdev/AlZXQ2o5uuTVHCfNGOiGgJ8vJ3KgO5YIWAnQjH0cDE@cp3-web-009.plabs.ch
> > 
> > Fixes: 0980bfcd6954 ("ethtool: set netdev features with FEATURES_SET request")
> > Signed-off-by: Alexander Lobakin <alobakin@pm.me>  
> 
> Reviewed-by: Michal Kubecek <mkubecek@suse.cz>

Applied, thanks!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-11-10  1:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-08  0:46 [PATCH v2 net] ethtool: netlink: add missing netdev_features_change() call Alexander Lobakin
2020-11-09 14:00 ` Michal Kubecek
2020-11-10  1:18   ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).