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

Reply via email to