liquidio: CN23XX: fix a loop timeout
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 13 Oct 2016 08:56:57 +0000 (11:56 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Oct 2016 16:12:50 +0000 (12:12 -0400)
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.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c

index bddb198c0b74c15bdcdaed635270f9f3c3ab00f3..380a64115a982bb15d1f6bbe5c4122711aa79c1a 100644 (file)
@@ -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));