The retry loop in bnxt_try_recover_fw() should not abort when the
health register value is 0.  It is a valid value that indicates the
firmware is booting up.

Fixes: 861aae786f2f ("bnxt_en: Enhance retry of the first message to the 
firmware.")
Reviewed-by: Edwin Peer <edwin.p...@broadcom.com>
Signed-off-by: Michael Chan <michael.c...@broadcom.com>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 6f13642121c4..3d36f945baf8 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -9532,8 +9532,8 @@ static int bnxt_try_recover_fw(struct bnxt *bp)
                do {
                        sts = bnxt_fw_health_readl(bp, BNXT_FW_HEALTH_REG);
                        rc = __bnxt_hwrm_ver_get(bp, true);
-                       if (!sts || (!BNXT_FW_IS_BOOTING(sts) &&
-                                    !BNXT_FW_IS_RECOVERING(sts)))
+                       if (!BNXT_FW_IS_BOOTING(sts) &&
+                           !BNXT_FW_IS_RECOVERING(sts))
                                break;
                        retry++;
                } while (rc == -EBUSY && retry < BNXT_FW_RETRY);
-- 
2.18.1

Reply via email to