aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/main.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
index a064f06e0cb8..81df046a6d69 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
@@ -116,7 +116,6 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev)
116 struct mlx5_eq_table *table = &dev->priv.eq_table; 116 struct mlx5_eq_table *table = &dev->priv.eq_table;
117 int num_eqs = 1 << dev->caps.log_max_eq; 117 int num_eqs = 1 << dev->caps.log_max_eq;
118 int nvec; 118 int nvec;
119 int err;
120 int i; 119 int i;
121 120
122 nvec = dev->caps.num_ports * num_online_cpus() + MLX5_EQ_VEC_COMP_BASE; 121 nvec = dev->caps.num_ports * num_online_cpus() + MLX5_EQ_VEC_COMP_BASE;
@@ -131,17 +130,12 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev)
131 for (i = 0; i < nvec; i++) 130 for (i = 0; i < nvec; i++)
132 table->msix_arr[i].entry = i; 131 table->msix_arr[i].entry = i;
133 132
134retry: 133 nvec = pci_enable_msix_range(dev->pdev, table->msix_arr,
135 table->num_comp_vectors = nvec - MLX5_EQ_VEC_COMP_BASE; 134 MLX5_EQ_VEC_COMP_BASE, nvec);
136 err = pci_enable_msix(dev->pdev, table->msix_arr, nvec); 135 if (nvec < 0)
137 if (err <= 0) { 136 return nvec;
138 return err;
139 } else if (err > 2) {
140 nvec = err;
141 goto retry;
142 }
143 137
144 mlx5_core_dbg(dev, "received %d MSI vectors out of %d requested\n", err, nvec); 138 table->num_comp_vectors = nvec - MLX5_EQ_VEC_COMP_BASE;
145 139
146 return 0; 140 return 0;
147} 141}