The port down state was not initialized in the error branch of link
detection when MLX NIC link status update failed (ret < 0).
This resulted in incorrect link state reporting, as the device
retained stale link status instead of reflecting the actual down
state under error conditions.
Fixes: 1256805dd54 ("net/mlx5: move Linux-specific functions")
Cc: [email protected]
Signed-off-by: Yang Xu <[email protected]>
---
.mailmap | 1 +
drivers/net/mlx5/linux/mlx5_ethdev_os.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/.mailmap b/.mailmap
index 34a99f93a1..14d6ee93dd 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1891,3 +1891,4 @@ Zoltan Kiss <[email protected]>
<[email protected]>
Zorik Machulsky <[email protected]>
Zyta Szpak <[email protected]> <[email protected]>
Zyta Szpak <[email protected]> <[email protected]>
+Yang Xu <[email protected]>
diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c
b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
index 9daeda5435..49b88dfebb 100644
--- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c
+++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
@@ -504,6 +504,7 @@ mlx5_link_update(struct rte_eth_dev *dev, int
wait_to_complete)
return -rte_errno;
}
} else if (ret < 0) {
+ memset(&dev->data->dev_link, 0,
sizeof(dev->data->dev_link));
return ret;
}
} while (wait_to_complete || retry-- > 0);
--
2.27.0