net/bnx2x: fix link state
authorShahed Shaikh <shshaikh@marvell.com>
Tue, 4 Jun 2019 18:53:51 +0000 (11:53 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 13 Jun 2019 14:54:30 +0000 (23:54 +0900)
Don't call bnx2x_link_status_update() from bnx2x_link_update().
Actual use case of bnx2x_link_status_update() is to update the link
status in shared memory between driver and MFW, and not to get the
link status from HW.

So ideally, bnx2x_link_status_update() should be called when there
is an actual link event or change in link status.

Calling bnx2x_link_status_update() from bnx2x_link_update() may
corrupt the data of link status in shared memory and result
in inconsistent state of link.

Fixes: 540a211084a7 ("bnx2x: driver core")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
drivers/net/bnx2x/bnx2x_ethdev.c

index 11a20e2..7429004 100644 (file)
@@ -88,7 +88,6 @@ bnx2x_link_update(struct rte_eth_dev *dev)
 
        PMD_INIT_FUNC_TRACE(sc);
 
-       bnx2x_link_status_update(sc);
        memset(&link, 0, sizeof(link));
        mb();
        link.link_speed = sc->link_vars.line_speed;