* [PATCH net] net/mlx5e: Fix return value in case of module EEPROM read error
@ 2025-11-04 14:15 Tariq Toukan
2025-11-05 10:27 ` Simon Horman
2025-11-06 1:50 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Tariq Toukan @ 2025-11-04 14:15 UTC (permalink / raw)
To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
David S. Miller
Cc: Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, netdev,
linux-rdma, linux-kernel, Gal Pressman, Alex Lazar
From: Gal Pressman <gal@nvidia.com>
mlx5e_get_module_eeprom_by_page() has weird error handling.
First, it is treating -EINVAL as a special case, but it is unclear why.
Second, it tries to fail "gracefully" by returning the number of bytes
read even in case of an error. This results in wrongly returning
success (0 return value) if the error occurs before any bytes were
read.
Simplify the error handling by returning an error when such occurs. This
also aligns with the error handling we have in mlx5e_get_module_eeprom()
for the old API.
This fixes the following case where the query fails, but userspace
ethtool wrongly treats it as success and dumps an output:
# ethtool -m eth2
netlink warning: mlx5_core: Query module eeprom by page failed, read 0 bytes, err -5
netlink warning: mlx5_core: Query module eeprom by page failed, read 0 bytes, err -5
Offset Values
------ ------
0x0000: 00 00 00 00 05 00 04 00 00 00 00 00 05 00 05 00
0x0010: 00 00 00 00 05 00 06 00 50 00 00 00 67 65 20 66
0x0020: 61 69 6c 65 64 2c 20 72 65 61 64 20 30 20 62 79
0x0030: 74 65 73 2c 20 65 72 72 20 2d 35 00 14 00 03 00
0x0040: 08 00 01 00 03 00 00 00 08 00 02 00 1a 00 00 00
0x0050: 14 00 04 00 08 00 01 00 04 00 00 00 08 00 02 00
0x0060: 0e 00 00 00 14 00 05 00 08 00 01 00 05 00 00 00
0x0070: 08 00 02 00 1a 00 00 00 14 00 06 00 08 00 01 00
Fixes: e109d2b204da ("net/mlx5: Implement get_module_eeprom_by_page()")
Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Alex Lazar <alazar@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
index 53e5ae252eac..893e1380a7c9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
@@ -2125,14 +2125,12 @@ static int mlx5e_get_module_eeprom_by_page(struct net_device *netdev,
if (!size_read)
return i;
- if (size_read == -EINVAL)
- return -EINVAL;
if (size_read < 0) {
NL_SET_ERR_MSG_FMT_MOD(
extack,
"Query module eeprom by page failed, read %u bytes, err %d",
i, size_read);
- return i;
+ return size_read;
}
i += size_read;
base-commit: e120f46768d98151ece8756ebd688b0e43dc8b29
--
2.31.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH net] net/mlx5e: Fix return value in case of module EEPROM read error
2025-11-04 14:15 [PATCH net] net/mlx5e: Fix return value in case of module EEPROM read error Tariq Toukan
@ 2025-11-05 10:27 ` Simon Horman
2025-11-06 1:50 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Simon Horman @ 2025-11-05 10:27 UTC (permalink / raw)
To: Tariq Toukan
Cc: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
David S. Miller, Saeed Mahameed, Mark Bloch, Leon Romanovsky,
netdev, linux-rdma, linux-kernel, Gal Pressman, Alex Lazar
On Tue, Nov 04, 2025 at 04:15:36PM +0200, Tariq Toukan wrote:
> From: Gal Pressman <gal@nvidia.com>
>
> mlx5e_get_module_eeprom_by_page() has weird error handling.
>
> First, it is treating -EINVAL as a special case, but it is unclear why.
>
> Second, it tries to fail "gracefully" by returning the number of bytes
> read even in case of an error. This results in wrongly returning
> success (0 return value) if the error occurs before any bytes were
> read.
>
> Simplify the error handling by returning an error when such occurs. This
> also aligns with the error handling we have in mlx5e_get_module_eeprom()
> for the old API.
>
> This fixes the following case where the query fails, but userspace
> ethtool wrongly treats it as success and dumps an output:
>
> # ethtool -m eth2
> netlink warning: mlx5_core: Query module eeprom by page failed, read 0 bytes, err -5
> netlink warning: mlx5_core: Query module eeprom by page failed, read 0 bytes, err -5
> Offset Values
> ------ ------
> 0x0000: 00 00 00 00 05 00 04 00 00 00 00 00 05 00 05 00
> 0x0010: 00 00 00 00 05 00 06 00 50 00 00 00 67 65 20 66
> 0x0020: 61 69 6c 65 64 2c 20 72 65 61 64 20 30 20 62 79
> 0x0030: 74 65 73 2c 20 65 72 72 20 2d 35 00 14 00 03 00
> 0x0040: 08 00 01 00 03 00 00 00 08 00 02 00 1a 00 00 00
> 0x0050: 14 00 04 00 08 00 01 00 04 00 00 00 08 00 02 00
> 0x0060: 0e 00 00 00 14 00 05 00 08 00 01 00 05 00 00 00
> 0x0070: 08 00 02 00 1a 00 00 00 14 00 06 00 08 00 01 00
>
> Fixes: e109d2b204da ("net/mlx5: Implement get_module_eeprom_by_page()")
> Signed-off-by: Gal Pressman <gal@nvidia.com>
> Reviewed-by: Alex Lazar <alazar@nvidia.com>
> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Thanks for the detailed description.
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net] net/mlx5e: Fix return value in case of module EEPROM read error
2025-11-04 14:15 [PATCH net] net/mlx5e: Fix return value in case of module EEPROM read error Tariq Toukan
2025-11-05 10:27 ` Simon Horman
@ 2025-11-06 1:50 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-11-06 1:50 UTC (permalink / raw)
To: Tariq Toukan
Cc: edumazet, kuba, pabeni, andrew+netdev, davem, saeedm, mbloch,
leon, netdev, linux-rdma, linux-kernel, gal, alazar
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Tue, 4 Nov 2025 16:15:36 +0200 you wrote:
> From: Gal Pressman <gal@nvidia.com>
>
> mlx5e_get_module_eeprom_by_page() has weird error handling.
>
> First, it is treating -EINVAL as a special case, but it is unclear why.
>
> Second, it tries to fail "gracefully" by returning the number of bytes
> read even in case of an error. This results in wrongly returning
> success (0 return value) if the error occurs before any bytes were
> read.
>
> [...]
Here is the summary with links:
- [net] net/mlx5e: Fix return value in case of module EEPROM read error
https://git.kernel.org/netdev/net/c/d1c94bc5b90c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-11-06 1:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-04 14:15 [PATCH net] net/mlx5e: Fix return value in case of module EEPROM read error Tariq Toukan
2025-11-05 10:27 ` Simon Horman
2025-11-06 1:50 ` patchwork-bot+netdevbpf
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).