Skip to content

Commit 29c6a56

Browse files
danielj-mellanoxdavem330
authored andcommitted
net/mlx5: Use max_num_eqs_24b capability if set
A new capability with more bits is added. If it's set use that value as the maximum number of EQs available. This cap is also writable by the vhca_resource_manager to allow limiting the number of EQs available to SFs and VFs. Fixes: 93197c7 ("mlx5/core: Support max_io_eqs for a function") Signed-off-by: Daniel Jurgens <[email protected]> Reviewed-by: Parav Pandit <[email protected]> Reviewed-by: William Tu <[email protected]> Signed-off-by: Tariq Toukan <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 048a403 commit 29c6a56

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,9 +1197,7 @@ static int get_num_eqs(struct mlx5_core_dev *dev)
11971197
if (!mlx5_core_is_eth_enabled(dev) && mlx5_eth_supported(dev))
11981198
return 1;
11991199

1200-
max_dev_eqs = MLX5_CAP_GEN(dev, max_num_eqs) ?
1201-
MLX5_CAP_GEN(dev, max_num_eqs) :
1202-
1 << MLX5_CAP_GEN(dev, log_max_eq);
1200+
max_dev_eqs = mlx5_max_eq_cap_get(dev);
12031201

12041202
num_eqs = min_t(int, mlx5_irq_table_get_num_comp(eq_table->irq_table),
12051203
max_dev_eqs - MLX5_MAX_ASYNC_EQS);

drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,4 +383,14 @@ static inline int mlx5_vport_to_func_id(const struct mlx5_core_dev *dev, u16 vpo
383383
: vport;
384384
}
385385

386+
static inline int mlx5_max_eq_cap_get(const struct mlx5_core_dev *dev)
387+
{
388+
if (MLX5_CAP_GEN_2(dev, max_num_eqs_24b))
389+
return MLX5_CAP_GEN_2(dev, max_num_eqs_24b);
390+
391+
if (MLX5_CAP_GEN(dev, max_num_eqs))
392+
return MLX5_CAP_GEN(dev, max_num_eqs);
393+
394+
return 1 << MLX5_CAP_GEN(dev, log_max_eq);
395+
}
386396
#endif /* __MLX5_CORE_H__ */

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -711,9 +711,7 @@ int mlx5_irq_table_get_num_comp(struct mlx5_irq_table *table)
711711

712712
int mlx5_irq_table_create(struct mlx5_core_dev *dev)
713713
{
714-
int num_eqs = MLX5_CAP_GEN(dev, max_num_eqs) ?
715-
MLX5_CAP_GEN(dev, max_num_eqs) :
716-
1 << MLX5_CAP_GEN(dev, log_max_eq);
714+
int num_eqs = mlx5_max_eq_cap_get(dev);
717715
int total_vec;
718716
int pcif_vec;
719717
int req_vec;

0 commit comments

Comments
 (0)