Message ID | 20240429102519.25096-3-jiawenwu@trustnetic.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Wangxun fixes | expand |
On Mon, Apr 29, 2024 at 06:25:17PM +0800, Jiawen Wu wrote: > Fix the issue where some Rx features cannot be changed. > > When using ethtool -K to turn off rx offload, it returns error and > displays "Could not change any device features". And netdev->features > is not assigned a new value to actually configure the hardware. > > Fixes: 6dbedcffcf54 ("net: libwx: Implement xx_set_features ops") > Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Simon Horman <horms@kernel.org> > --- > drivers/net/ethernet/wangxun/libwx/wx_lib.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c > index 6fae161cbcb8..667a5675998c 100644 > --- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c > +++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c > @@ -2690,12 +2690,14 @@ int wx_set_features(struct net_device *netdev, netdev_features_t features) > wx->rss_enabled = false; > } > > + netdev->features = features; > + nit: I think it would be slightly nicer to place this at the end of the function, just before return. But it would make no difference to the logic, so I don't feel strongly about this. > if (changed & > (NETIF_F_HW_VLAN_CTAG_RX | > NETIF_F_HW_VLAN_STAG_RX)) > wx_set_rx_mode(netdev); > > - return 1; > + return 0; > } > EXPORT_SYMBOL(wx_set_features); > > -- > 2.27.0 > >
> > diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c > > index 6fae161cbcb8..667a5675998c 100644 > > --- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c > > +++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c > > @@ -2690,12 +2690,14 @@ int wx_set_features(struct net_device *netdev, netdev_features_t features) > > wx->rss_enabled = false; > > } > > > > + netdev->features = features; > > + > > nit: I think it would be slightly nicer to place this > at the end of the function, just before return. > But it would make no difference to the logic, > so I don't feel strongly about this. Thanks for your notice, but it does have to be written here. Since 'netdev->features' will be checked in wx_set_rx_mode(). > > > if (changed & > > (NETIF_F_HW_VLAN_CTAG_RX | > > NETIF_F_HW_VLAN_STAG_RX)) > > wx_set_rx_mode(netdev); > > > > - return 1; > > + return 0; > > } > > EXPORT_SYMBOL(wx_set_features); > > > > -- > > 2.27.0 > > > > >
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c index 6fae161cbcb8..667a5675998c 100644 --- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c +++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c @@ -2690,12 +2690,14 @@ int wx_set_features(struct net_device *netdev, netdev_features_t features) wx->rss_enabled = false; } + netdev->features = features; + if (changed & (NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX)) wx_set_rx_mode(netdev); - return 1; + return 0; } EXPORT_SYMBOL(wx_set_features);
Fix the issue where some Rx features cannot be changed. When using ethtool -K to turn off rx offload, it returns error and displays "Could not change any device features". And netdev->features is not assigned a new value to actually configure the hardware. Fixes: 6dbedcffcf54 ("net: libwx: Implement xx_set_features ops") Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> --- drivers/net/ethernet/wangxun/libwx/wx_lib.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)