summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c
diff options
context:
space:
mode:
authorJiri Pirko2018-07-08 22:51:17 +0200
committerDavid S. Miller2018-07-10 01:24:16 +0200
commit4b6b18692aec205b98dd333938b714af9d7aefe1 (patch)
treef2d22dfb001c2f549c015ab5e44893a2a4d6a6b0 /drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c
parentmlxsw: spectrum_kvdl: Push out KVD linear management into ops (diff)
downloadkernel-qcow2-linux-4b6b18692aec205b98dd333938b714af9d7aefe1.tar.gz
kernel-qcow2-linux-4b6b18692aec205b98dd333938b714af9d7aefe1.tar.xz
kernel-qcow2-linux-4b6b18692aec205b98dd333938b714af9d7aefe1.zip
mlxsw: spectrum_kvdl: Pass entry type to alloc/free
Future Spectrum-2 KVD linear manager implementation needs to know type of the entry to alloc and free. So define the types in an enum and pass it down to alloc and free functions. Once the entry type is passed down, KVDL common part knows sizes of each entry types, so replace size function arg with entry count. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c
index afcadaad8edd..86e0b993f8b3 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c
@@ -175,6 +175,7 @@ static void mlxsw_sp1_kvdl_part_free(struct mlxsw_sp1_kvdl_part *part,
}
static int mlxsw_sp1_kvdl_alloc(struct mlxsw_sp *mlxsw_sp, void *priv,
+ enum mlxsw_sp_kvdl_entry_type type,
unsigned int entry_count,
u32 *p_entry_index)
{
@@ -192,6 +193,7 @@ static int mlxsw_sp1_kvdl_alloc(struct mlxsw_sp *mlxsw_sp, void *priv,
}
static void mlxsw_sp1_kvdl_free(struct mlxsw_sp *mlxsw_sp, void *priv,
+ enum mlxsw_sp_kvdl_entry_type type,
int entry_index)
{
struct mlxsw_sp1_kvdl *kvdl = priv;
@@ -204,7 +206,9 @@ static void mlxsw_sp1_kvdl_free(struct mlxsw_sp *mlxsw_sp, void *priv,
}
static int mlxsw_sp1_kvdl_alloc_size_query(struct mlxsw_sp *mlxsw_sp,
- void *priv, unsigned int entry_count,
+ void *priv,
+ enum mlxsw_sp_kvdl_entry_type type,
+ unsigned int entry_count,
unsigned int *p_alloc_size)
{
struct mlxsw_sp1_kvdl *kvdl = priv;