This patch fixes incorrect reporting of link status
1) When link is down, set speed to zero. Otherwise a wrong non-zero speed
will be displayed.
2) DAC cables can detect there is a signal, but it necessarily does not
mean link is up. Code perviously treated this as link up.

Signed-off-by: Stephen Hurd <stephen.h...@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khapa...@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 6d98d5a..f45b883 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -630,7 +630,7 @@ static int bnxt_hwrm_port_phy_qcfg(struct bnxt *bp,
        HWRM_CHECK_RESULT;
 
        link_info->phy_link_status = resp->link;
-       if (link_info->phy_link_status != 
HWRM_PORT_PHY_QCFG_OUTPUT_LINK_NO_LINK) {
+       if (link_info->phy_link_status == HWRM_PORT_PHY_QCFG_OUTPUT_LINK_LINK) {
                link_info->link_up = 1;
                link_info->link_speed = rte_le_to_cpu_16(resp->link_speed);
        } else {
@@ -1831,7 +1831,7 @@ int bnxt_get_hwrm_link_config(struct bnxt *bp, struct 
rte_eth_link *link)
                link->link_speed =
                        bnxt_parse_hw_link_speed(link_info->link_speed);
        else
-               link->link_speed = ETH_LINK_SPEED_10M;
+               link->link_speed = ETH_SPEED_NUM_NONE;
        link->link_duplex = bnxt_parse_hw_link_duplex(link_info->duplex);
        link->link_status = link_info->link_up;
        link->link_autoneg = link_info->auto_mode ==
-- 
2.10.1 (Apple Git-78)

Reply via email to