net/mlx5e: Wait for RX buffers initialization in a more proper manner
authorAchiad Shochat <achiad@mellanox.com>
Tue, 3 Nov 2015 06:07:19 +0000 (08:07 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 3 Nov 2015 15:41:50 +0000 (10:41 -0500)
Use jiffies rather than wait loop with msleep().

The wait loop didn't take into consideration time when the
process was not executing.

Signed-off-by: Achiad Shochat <achiad@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/en_main.c

index 9df6f9ae9bb5a80bdae7b18380e8aec51c68408c..0bab33c6cec0092dbe97b0b51652cc58c04b37da 100644 (file)
@@ -442,12 +442,12 @@ static void mlx5e_disable_rq(struct mlx5e_rq *rq)
 
 static int mlx5e_wait_for_min_rx_wqes(struct mlx5e_rq *rq)
 {
+       unsigned long exp_time = jiffies + msecs_to_jiffies(20000);
        struct mlx5e_channel *c = rq->channel;
        struct mlx5e_priv *priv = c->priv;
        struct mlx5_wq_ll *wq = &rq->wq;
-       int i;
 
-       for (i = 0; i < 1000; i++) {
+       while (time_before(jiffies, exp_time)) {
                if (wq->cur_sz >= priv->params.min_rx_wqes)
                        return 0;