mlx4: Fixing bad size of event queue buffer
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>
Wed, 30 Mar 2011 23:30:17 +0000 (23:30 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 31 Mar 2011 09:52:18 +0000 (02:52 -0700)
We should reduce the number of reserved completion queues from the total
number of entries. Since the queue size is power of two, not reducing the
reserved entries, caused a double queue size, which may lead to allocation
failures in some cases.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/mlx4/eq.c

index 506cfd0372ecf786872d07f1f2e2e85c910f4bd0..1ad1f6029af80a3fd84dd0071fbdefb57de2892a 100644 (file)
@@ -603,7 +603,9 @@ int mlx4_init_eq_table(struct mlx4_dev *dev)
        }
 
        for (i = 0; i < dev->caps.num_comp_vectors; ++i) {
-               err = mlx4_create_eq(dev, dev->caps.num_cqs + MLX4_NUM_SPARE_EQE,
+               err = mlx4_create_eq(dev, dev->caps.num_cqs -
+                                         dev->caps.reserved_cqs +
+                                         MLX4_NUM_SPARE_EQE,
                                     (dev->flags & MLX4_FLAG_MSI_X) ? i : 0,
                                     &priv->eq_table.eq[i]);
                if (err) {