|
Denis Kirjanov |
d1661a |
From 0fe91559d9999183757c74e720ee48501f1e8b85 Mon Sep 17 00:00:00 2001
|
|
Denis Kirjanov |
d1661a |
From: Edwin Peer <edwin.peer@broadcom.com>
|
|
Denis Kirjanov |
d1661a |
Date: Thu, 11 Feb 2021 02:24:23 -0500
|
|
Denis Kirjanov |
d1661a |
Subject: [PATCH 01/19] bnxt_en: reverse order of TX disable and carrier off
|
|
Denis Kirjanov |
d1661a |
Git-commit: 132e0b65dc2b8bfa9721bfce834191f24fd1d7ed
|
|
Denis Kirjanov |
d1661a |
Patch-mainline: v5.12-rc1
|
|
Denis Kirjanov |
d1661a |
References: git-fixes
|
|
Denis Kirjanov |
d1661a |
|
|
Denis Kirjanov |
d1661a |
A TX queue can potentially immediately timeout after it is stopped
|
|
Denis Kirjanov |
d1661a |
and the last TX timestamp on that queue was more than 5 seconds ago with
|
|
Denis Kirjanov |
d1661a |
carrier still up. Prevent these intermittent false TX timeouts
|
|
Denis Kirjanov |
d1661a |
by bringing down carrier first before calling netif_tx_disable().
|
|
Denis Kirjanov |
d1661a |
|
|
Denis Kirjanov |
d1661a |
Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.")
|
|
Denis Kirjanov |
d1661a |
Signed-off-by: Edwin Peer <edwin.peer@broadcom.com>
|
|
Denis Kirjanov |
d1661a |
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
|
|
Denis Kirjanov |
d1661a |
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Denis Kirjanov |
d1661a |
Signed-off-by: Denis Kirjanov <denis.kirjanov@suse.com>
|
|
Denis Kirjanov |
d1661a |
---
|
|
Denis Kirjanov |
d1661a |
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 ++-
|
|
Denis Kirjanov |
d1661a |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
Denis Kirjanov |
d1661a |
|
|
Denis Kirjanov |
d1661a |
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
|
|
Denis Kirjanov |
d1661a |
index b1ba6df8911d..3c14d1a2efaa 100644
|
|
Denis Kirjanov |
d1661a |
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
|
|
Denis Kirjanov |
d1661a |
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
|
|
Denis Kirjanov |
d1661a |
@@ -7776,9 +7776,10 @@ void bnxt_tx_disable(struct bnxt *bp)
|
|
Denis Kirjanov |
d1661a |
txr->dev_state = BNXT_DEV_STATE_CLOSING;
|
|
Denis Kirjanov |
d1661a |
}
|
|
Denis Kirjanov |
d1661a |
}
|
|
Denis Kirjanov |
d1661a |
+ /* Drop carrier first to prevent TX timeout */
|
|
Denis Kirjanov |
d1661a |
+ netif_carrier_off(bp->dev);
|
|
Denis Kirjanov |
d1661a |
/* Stop all TX queues */
|
|
Denis Kirjanov |
d1661a |
netif_tx_disable(bp->dev);
|
|
Denis Kirjanov |
d1661a |
- netif_carrier_off(bp->dev);
|
|
Denis Kirjanov |
d1661a |
}
|
|
Denis Kirjanov |
d1661a |
|
|
Denis Kirjanov |
d1661a |
void bnxt_tx_enable(struct bnxt *bp)
|
|
Denis Kirjanov |
d1661a |
--
|
|
Denis Kirjanov |
d1661a |
2.16.4
|
|
Denis Kirjanov |
d1661a |
|