This is supposed to loop 1000 times and then give up.  The problem is
it's a post-op and after the loop we test if "loop" is zero when really
it would be -1.  Fix this by making it a pre-op.

Fixes: 1b7c55c4538b ("liquidio: CN23XX queue manipulation")
Signed-off-by: Dan Carpenter <dan.carpen...@oracle.com>

diff --git a/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 
b/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c
index bddb198..380a641 100644
--- a/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c
+++ b/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c
@@ -693,7 +693,7 @@ static int cn23xx_enable_io_queues(struct octeon_device 
*oct)
                                while ((reg_val & CN23XX_PKT_INPUT_CTL_RST) &&
                                       !(reg_val &
                                         CN23XX_PKT_INPUT_CTL_QUIET) &&
-                                      loop--) {
+                                      --loop) {
                                        reg_val = octeon_read_csr64(
                                            oct,
                                            CN23XX_SLI_IQ_PKT_CONTROL64(q_no));

Reply via email to