diff mbox series

[net] nfp: ethtool: fix the display error of `ethtool -m DEVNAME`

Message ID 20220802085916.63988-1-simon.horman@corigine.com (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series [net] nfp: ethtool: fix the display error of `ethtool -m DEVNAME` | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net
netdev/fixes_present success Fixes tag present in non-next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers fail 1 blamed authors not CCed: dirk.vandermerwe@netronome.com; 3 maintainers not CCed: edumazet@google.com fei.qin@corigine.com dirk.vandermerwe@netronome.com
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes fail Problems with Fixes tag: 1
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 8 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Simon Horman Aug. 2, 2022, 8:59 a.m. UTC
From: Yu Xiao <yu.xiao@corigine.com>

The port flag isn't set to `NFP_PORT_CHANGED` when using
`ethtool -m DEVNAME` before, so the port state (e.g. interface)
cannot be updated. Therefore, it caused that `ethtool -m DEVNAME`
sometimes cannot read the correct information.

E.g. `ethtool -m DEVNAME` cannot work when load driver before plug
in optical module, as the port interface is still NONE without port
update.

Now update the port state before sending info to NIC to ensure that
port interface is correct (latest state).

Fixes: 61f7c6f4 ("nfp: implement ethtool get module EEPROM")
Reviewed-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Yu Xiao <yu.xiao@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
---
 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Simon Horman Aug. 2, 2022, 9:33 a.m. UTC | #1
On Tue, Aug 02, 2022 at 09:59:16AM +0100, Simon Horman wrote:
> From: Yu Xiao <yu.xiao@corigine.com>
> 
> The port flag isn't set to `NFP_PORT_CHANGED` when using
> `ethtool -m DEVNAME` before, so the port state (e.g. interface)
> cannot be updated. Therefore, it caused that `ethtool -m DEVNAME`
> sometimes cannot read the correct information.
> 
> E.g. `ethtool -m DEVNAME` cannot work when load driver before plug
> in optical module, as the port interface is still NONE without port
> update.
> 
> Now update the port state before sending info to NIC to ensure that
> port interface is correct (latest state).
> 
> Fixes: 61f7c6f4 ("nfp: implement ethtool get module EEPROM")

Sorry about this. I see that the fixes tag above has 8 rather than 12
characters of the commit hash. I'll post v2 to address this problem.

> Reviewed-by: Louis Peens <louis.peens@corigine.com>
> Signed-off-by: Yu Xiao <yu.xiao@corigine.com>
> Signed-off-by: Simon Horman <simon.horman@corigine.com>
> ---
>  drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
> index df0afd271a21..e6ee45afd80c 100644
> --- a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
> +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
> @@ -1230,6 +1230,8 @@ nfp_port_get_module_info(struct net_device *netdev,
>  	u8 data;
>  
>  	port = nfp_port_from_netdev(netdev);
> +	/* update port state to get latest interface */
> +	set_bit(NFP_PORT_CHANGED, &port->flags);
>  	eth_port = nfp_port_get_eth_port(port);
>  	if (!eth_port)
>  		return -EOPNOTSUPP;
> -- 
> 2.30.2
>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
index df0afd271a21..e6ee45afd80c 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
@@ -1230,6 +1230,8 @@  nfp_port_get_module_info(struct net_device *netdev,
 	u8 data;
 
 	port = nfp_port_from_netdev(netdev);
+	/* update port state to get latest interface */
+	set_bit(NFP_PORT_CHANGED, &port->flags);
 	eth_port = nfp_port_get_eth_port(port);
 	if (!eth_port)
 		return -EOPNOTSUPP;