bnxt_en: Workaround occasional TX timeout on 57500 A0.
authorMichael Chan <michael.chan@broadcom.com>
Thu, 15 Nov 2018 08:25:40 +0000 (03:25 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Nov 2018 17:37:15 +0000 (09:37 -0800)
commitffd77621700ec3adcf859681e24910c38e0931f5
tree061a41a006ca4bbcad2a6d02fd84f7e7731bf843
parentaddd4df6d763556e16d5316e4e8cd441050cc2af
bnxt_en: Workaround occasional TX timeout on 57500 A0.

Hardware can sometimes not generate NQ MSIX with a single pending
CP ring entry.  This seems to always happen at the last entry of
the CP ring before it wraps.  Add logic to check all the CP rings for
pending entries without the CP ring consumer index advancing.  Calling
HWRM_DBG_RING_INFO_GET to read the context of the CP ring will flush
out the NQ entry and MSIX.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h