Coverity spotted that one of the loop conditions was always true. Fix by initializing the variable using same logic as Linux kernel driver.
Coverity issue: 362057 Fixes: 540a211084a7 ("bnx2x: driver core") Signed-off-by: Stephen Hemminger <step...@networkplumber.org> --- drivers/net/bnx2x/bnx2x.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c index af31ac4604..d96fcb55c9 100644 --- a/drivers/net/bnx2x/bnx2x.c +++ b/drivers/net/bnx2x/bnx2x.c @@ -10331,12 +10331,13 @@ static int bnx2x_init_hw_common(struct bnx2x_softc *sc) REG_WR(sc, PXP2_REG_RD_DISABLE_INPUTS, 0); if (!CHIP_IS_E1x(sc)) { - int factor = 0; + int factor = CHIP_REV_IS_EMUL(sc) ? 1000 : + (CHIP_REV_IS_FPGA(sc) ? 400 : 0); ecore_init_block(sc, BLOCK_PGLUE_B, PHASE_COMMON); ecore_init_block(sc, BLOCK_ATC, PHASE_COMMON); -/* let the HW do it's magic... */ + /* let the HW do it's magic... */ do { DELAY(200000); val = REG_RD(sc, ATC_REG_ATC_INIT_DONE); -- 2.45.2