net/mlx4_core: Fix number of EQs used in ICM initialisation
[deliverable/linux.git] / drivers / net / ethernet / mellanox / mlx4 / main.c
index 2e024a68fa814573d858ac382147f1f4d923b835..2fe9fe5f7cfb519c7f11a4a31e434a43d58b4da1 100644 (file)
@@ -142,12 +142,6 @@ struct mlx4_port_config {
        struct pci_dev *pdev;
 };
 
-static inline int mlx4_master_get_num_eqs(struct mlx4_dev *dev)
-{
-       return dev->caps.reserved_eqs +
-               MLX4_MFUNC_EQ_NUM * (dev->num_slaves + 1);
-}
-
 int mlx4_check_port_params(struct mlx4_dev *dev,
                           enum mlx4_port_type *port_type)
 {
@@ -217,6 +211,7 @@ static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
        }
 
        dev->caps.num_ports          = dev_cap->num_ports;
+       dev->phys_caps.num_phys_eqs  = MLX4_MAX_EQ_NUM;
        for (i = 1; i <= dev->caps.num_ports; ++i) {
                dev->caps.vl_cap[i]         = dev_cap->max_vl[i];
                dev->caps.ib_mtu_cap[i]     = dev_cap->ib_mtu[i];
@@ -810,9 +805,8 @@ static int mlx4_init_cmpt_table(struct mlx4_dev *dev, u64 cmpt_base,
        if (err)
                goto err_srq;
 
-       num_eqs = (mlx4_is_master(dev)) ?
-               roundup_pow_of_two(mlx4_master_get_num_eqs(dev)) :
-               dev->caps.num_eqs;
+       num_eqs = (mlx4_is_master(dev)) ? dev->phys_caps.num_phys_eqs :
+                 dev->caps.num_eqs;
        err = mlx4_init_icm_table(dev, &priv->eq_table.cmpt_table,
                                  cmpt_base +
                                  ((u64) (MLX4_CMPT_TYPE_EQ *
@@ -874,9 +868,8 @@ static int mlx4_init_icm(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap,
        }
 
 
-       num_eqs = (mlx4_is_master(dev)) ?
-               roundup_pow_of_two(mlx4_master_get_num_eqs(dev)) :
-               dev->caps.num_eqs;
+       num_eqs = (mlx4_is_master(dev)) ? dev->phys_caps.num_phys_eqs :
+                  dev->caps.num_eqs;
        err = mlx4_init_icm_table(dev, &priv->eq_table.table,
                                  init_hca->eqc_base, dev_cap->eqc_entry_sz,
                                  num_eqs, num_eqs, 0, 0);
This page took 0.025698 seconds and 5 git commands to generate.