bnxt_en: Fix error recovery regression
authorMichael Chan <michael.chan@broadcom.com>
Sun, 12 Sep 2021 16:34:47 +0000 (12:34 -0400)
committerDom Cobley <popcornmix@gmail.com>
Thu, 14 Oct 2021 11:33:00 +0000 (12:33 +0100)
commit079ba290785d71b7c50ae62f3fea6d7167dddb9f
tree07eb4837947560145a1e431e2a3634a43fcf9904
parent1cc3fea03d6a944517a189b04aeb3fea7b6efb10
bnxt_en: Fix error recovery regression

commit eca4cf12acda306f851f6d2a05b1c9ef62cf0e81 upstream.

The recent patch has introduced a regression by not reading the reset
count in the ERROR_RECOVERY async event handler.  We may have just
gone through a reset and the reset count has just incremented.  If
we don't update the reset count in the ERROR_RECOVERY event handler,
the health check timer will see that the reset count has changed and
will initiate an unintended reset.

Restore the unconditional update of the reset count in
bnxt_async_event_process() if error recovery watchdog is enabled.
Also, update the reset count at the end of the reset sequence to
make it even more robust.

Fixes: 1b2b91831983 ("bnxt_en: Fix possible unintended driver initiated error recovery")
Reviewed-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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c