net/mlx5: Skip pages EQ creation for non-page supplier function
Page events are not issued by device on the function if page_request_disable is set, so no need to create pages EQ. Signed-off-by: Jianbo Liu <jianbol@nvidia.com> Reviewed-by: Parav Pandit <parav@nvidia.com> Reviewed-by: Moshe Shemesh <moshe@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Link: https://lore.kernel.org/r/20240402133043.56322-11-tariqt@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
137f3d50ad
commit
c788d79cfa
2 changed files with 11 additions and 2 deletions
|
@ -688,6 +688,12 @@ static int create_async_eqs(struct mlx5_core_dev *dev)
|
|||
if (err)
|
||||
goto err2;
|
||||
|
||||
/* Skip page eq creation when the device does not request for page requests */
|
||||
if (MLX5_CAP_GEN(dev, page_request_disable)) {
|
||||
mlx5_core_dbg(dev, "Skip page EQ creation\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
param = (struct mlx5_eq_param) {
|
||||
.irq = table->ctrl_irq,
|
||||
.nent = /* TODO: sriov max_vf + */ 1,
|
||||
|
@ -716,7 +722,8 @@ static void destroy_async_eqs(struct mlx5_core_dev *dev)
|
|||
{
|
||||
struct mlx5_eq_table *table = dev->priv.eq_table;
|
||||
|
||||
cleanup_async_eq(dev, &table->pages_eq, "pages");
|
||||
if (!MLX5_CAP_GEN(dev, page_request_disable))
|
||||
cleanup_async_eq(dev, &table->pages_eq, "pages");
|
||||
cleanup_async_eq(dev, &table->async_eq, "async");
|
||||
mlx5_cmd_allowed_opcode(dev, MLX5_CMD_OP_DESTROY_EQ);
|
||||
mlx5_cmd_use_polling(dev);
|
||||
|
|
|
@ -1485,7 +1485,9 @@ enum {
|
|||
};
|
||||
|
||||
struct mlx5_ifc_cmd_hca_cap_bits {
|
||||
u8 reserved_at_0[0x10];
|
||||
u8 reserved_at_0[0x6];
|
||||
u8 page_request_disable[0x1];
|
||||
u8 reserved_at_7[0x9];
|
||||
u8 shared_object_to_user_object_allowed[0x1];
|
||||
u8 reserved_at_13[0xe];
|
||||
u8 vhca_resource_manager[0x1];
|
||||
|
|
Loading…
Add table
Reference in a new issue