From: Vasundhara Volam <vasundhara-v.vo...@broadcom.com>

[ Upstream commit ca0c753815fe4786b79a80abf0412eb5d52090b8 ]

In a shared port PHY configuration, async event is received when any of the
port modifies the configuration. Ethtool link settings should be
initialised after updated PHY configuration from firmware.

Fixes: b1613e78e98d ("bnxt_en: Add async. event logic for PHY configuration 
changes.")
Signed-off-by: Vasundhara Volam <vasundhara-v.vo...@broadcom.com>
Signed-off-by: Michael Chan <michael.c...@broadcom.com>
Signed-off-by: David S. Miller <da...@davemloft.net>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index b6fb5a1709c01..198bca9c1e2df 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -10362,15 +10362,15 @@ static void bnxt_sp_task(struct work_struct *work)
                                       &bp->sp_event))
                        bnxt_hwrm_phy_qcaps(bp);
 
-               if (test_and_clear_bit(BNXT_LINK_CFG_CHANGE_SP_EVENT,
-                                      &bp->sp_event))
-                       bnxt_init_ethtool_link_settings(bp);
-
                rc = bnxt_update_link(bp, true);
-               mutex_unlock(&bp->link_lock);
                if (rc)
                        netdev_err(bp->dev, "SP task can't update link (rc: 
%x)\n",
                                   rc);
+
+               if (test_and_clear_bit(BNXT_LINK_CFG_CHANGE_SP_EVENT,
+                                      &bp->sp_event))
+                       bnxt_init_ethtool_link_settings(bp);
+               mutex_unlock(&bp->link_lock);
        }
        if (test_and_clear_bit(BNXT_UPDATE_PHY_SP_EVENT, &bp->sp_event)) {
                int rc;
-- 
2.25.1



Reply via email to