Skip to content

Commit 1dc8513

Browse files
elic307iSaeed Mahameed
authored andcommitted
net/mlx5: Refactor calculation of required completion vectors
Move the calculation to a separate function. We will add more functionality to it in a follow up patch. Signed-off-by: Eli Cohen <[email protected]> Reviewed-by: Shay Drory <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]> Reviewed-by: Jacob Keller <[email protected]>
1 parent fe578cb commit 1dc8513

File tree

1 file changed

+18
-10
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+18
-10
lines changed

drivers/net/ethernet/mellanox/mlx5/core/eq.c

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,26 +1113,34 @@ void mlx5_core_eq_free_irqs(struct mlx5_core_dev *dev)
11131113
#define MLX5_MAX_ASYNC_EQS 3
11141114
#endif
11151115

1116-
int mlx5_eq_table_create(struct mlx5_core_dev *dev)
1116+
static int get_num_eqs(struct mlx5_core_dev *dev)
11171117
{
11181118
struct mlx5_eq_table *eq_table = dev->priv.eq_table;
1119-
int num_eqs = MLX5_CAP_GEN(dev, max_num_eqs) ?
1119+
int max_dev_eqs;
1120+
int max_eqs_sf;
1121+
int num_eqs;
1122+
1123+
max_dev_eqs = MLX5_CAP_GEN(dev, max_num_eqs) ?
11201124
MLX5_CAP_GEN(dev, max_num_eqs) :
11211125
1 << MLX5_CAP_GEN(dev, log_max_eq);
1122-
int max_eqs_sf;
1123-
int err;
11241126

1125-
eq_table->num_comp_eqs =
1126-
min_t(int,
1127-
mlx5_irq_table_get_num_comp(eq_table->irq_table),
1128-
num_eqs - MLX5_MAX_ASYNC_EQS);
1127+
num_eqs = min_t(int, mlx5_irq_table_get_num_comp(eq_table->irq_table),
1128+
max_dev_eqs - MLX5_MAX_ASYNC_EQS);
11291129
if (mlx5_core_is_sf(dev)) {
11301130
max_eqs_sf = min_t(int, MLX5_COMP_EQS_PER_SF,
11311131
mlx5_irq_table_get_sfs_vec(eq_table->irq_table));
1132-
eq_table->num_comp_eqs = min_t(int, eq_table->num_comp_eqs,
1133-
max_eqs_sf);
1132+
num_eqs = min_t(int, num_eqs, max_eqs_sf);
11341133
}
11351134

1135+
return num_eqs;
1136+
}
1137+
1138+
int mlx5_eq_table_create(struct mlx5_core_dev *dev)
1139+
{
1140+
struct mlx5_eq_table *eq_table = dev->priv.eq_table;
1141+
int err;
1142+
1143+
eq_table->num_comp_eqs = get_num_eqs(dev);
11361144
err = create_async_eqs(dev);
11371145
if (err) {
11381146
mlx5_core_err(dev, "Failed to create async EQs\n");

0 commit comments

Comments
 (0)