dpaa2-eth: fix condition for number of buffer acquire retries
authorIoana Ciornei <ioana.ciornei@nxp.com>
Wed, 24 Jun 2020 11:34:19 +0000 (14:34 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 25 Jun 2020 23:03:39 +0000 (16:03 -0700)
We should keep retrying to acquire buffers through the software portals
as long as the function returns -EBUSY and the number of retries is
__below__ DPAA2_ETH_SWP_BUSY_RETRIES.

Fixes: ef17bd7cc0c8 ("dpaa2-eth: Avoid unbounded while loops")
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c

index db27f95..712bbfd 100644 (file)
@@ -1113,7 +1113,7 @@ static void drain_bufs(struct dpaa2_eth_priv *priv, int count)
                                               buf_array, count);
                if (ret < 0) {
                        if (ret == -EBUSY &&
-                           retries++ >= DPAA2_ETH_SWP_BUSY_RETRIES)
+                           retries++ < DPAA2_ETH_SWP_BUSY_RETRIES)
                                continue;
                        netdev_err(priv->net_dev, "dpaa2_io_service_acquire() failed\n");
                        return;