diff options
author | Edwin Peer <edwin.peer@broadcom.com> | 2021-02-11 10:24:23 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-02-12 01:36:22 +0300 |
commit | 132e0b65dc2b8bfa9721bfce834191f24fd1d7ed (patch) | |
tree | 2e5d68e4d0fd65c79fa99dc48d688e9ac208c56e /drivers/net/ethernet/broadcom/bnxt/bnxt.c | |
parent | d4083d3c00f60a09ad82e3bf17ff57fec69c8aa6 (diff) | |
download | linux-132e0b65dc2b8bfa9721bfce834191f24fd1d7ed.tar.xz |
bnxt_en: reverse order of TX disable and carrier off
A TX queue can potentially immediately timeout after it is stopped
and the last TX timestamp on that queue was more than 5 seconds ago with
carrier still up. Prevent these intermittent false TX timeouts
by bringing down carrier first before calling netif_tx_disable().
Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.")
Signed-off-by: Edwin Peer <edwin.peer@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnxt/bnxt.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index d10e4f85dd11..1c96b7ba24f2 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -8856,9 +8856,10 @@ void bnxt_tx_disable(struct bnxt *bp) txr->dev_state = BNXT_DEV_STATE_CLOSING; } } + /* Drop carrier first to prevent TX timeout */ + netif_carrier_off(bp->dev); /* Stop all TX queues */ netif_tx_disable(bp->dev); - netif_carrier_off(bp->dev); } void bnxt_tx_enable(struct bnxt *bp) |