]> git.baikalelectronics.ru Git - kernel.git/commit
bnxt_en: Fix error recovery regression
authorMichael Chan <michael.chan@broadcom.com>
Sun, 12 Sep 2021 16:34:47 +0000 (12:34 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Sep 2021 11:31:13 +0000 (12:31 +0100)
commit4e46becca1753c12f0fc5ce52c3b412eb8d1c8c7
tree53ea84a3a918da12dd2cbd28483ad4269677503d
parent04024d68fb5b329cd71d82704c33fb1330dfdda9
bnxt_en: Fix error recovery regression

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: 20d18d2ba29e ("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>
drivers/net/ethernet/broadcom/bnxt/bnxt.c