Skip to content

Commit

Permalink
RDMA/mlx5: Create flow table with max size supported
Browse files Browse the repository at this point in the history
Instead of failing the request, just use the supported number of flow
entries.

Signed-off-by: Mark Bloch <markb@mellanox.com>
Reviewed-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
  • Loading branch information
Mark Bloch authored and Jason Gunthorpe committed Apr 22, 2019
1 parent 13a4376 commit 3b70508
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions drivers/infiniband/hw/mlx5/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -3233,12 +3233,11 @@ static struct mlx5_ib_flow_prio *get_flow_table(struct mlx5_ib_dev *dev,
if (!ns)
return ERR_PTR(-ENOTSUPP);

if (num_entries > max_table_size)
return ERR_PTR(-ENOMEM);
max_table_size = min_t(int, num_entries, max_table_size);

ft = prio->flow_table;
if (!ft)
return _get_prio(ns, prio, priority, num_entries, num_groups,
return _get_prio(ns, prio, priority, max_table_size, num_groups,
flags);

return prio;
Expand Down Expand Up @@ -3838,8 +3837,7 @@ _get_flow_table(struct mlx5_ib_dev *dev,
priority = FDB_BYPASS_PATH;
}

if (max_table_size < MLX5_FS_MAX_ENTRIES)
return ERR_PTR(-ENOMEM);
max_table_size = min_t(int, max_table_size, MLX5_FS_MAX_ENTRIES);

ns = mlx5_get_flow_namespace(dev->mdev, fs_matcher->ns_type);
if (!ns)
Expand All @@ -3858,7 +3856,7 @@ _get_flow_table(struct mlx5_ib_dev *dev,
if (prio->flow_table)
return prio;

return _get_prio(ns, prio, priority, MLX5_FS_MAX_ENTRIES,
return _get_prio(ns, prio, priority, max_table_size,
MLX5_FS_MAX_TYPES, flags);
}

Expand Down

0 comments on commit 3b70508

Please sign in to comment.