summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
diff options
context:
space:
mode:
authorLama Kayal <lkayal@nvidia.com>2022-01-10 13:36:59 +0200
committerSaeed Mahameed <saeedm@nvidia.com>2022-07-28 13:55:27 -0700
commit65f586c2730ca342404abe1363a7ecaa8f48ca38 (patch)
tree9d834d03627042bf45350d6b92fba956768587b5 /drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
parent7d1a5ce46e475378761432263e9b1a385968a9af (diff)
net/mlx5e: Convert mlx5e_tc_table member of mlx5e_flow_steering to pointer
Make fs.tc be a pointer and allocate it dynamically. Add mlx5e_priv pointer to mlx5e_tc_table, and thus get a work-around to accessing priv via tc when handling tc events inside mlx5e_tc_netdev_event. Signed-off-by: Lama Kayal <lkayal@nvidia.com> Reviewed-by: Tariq Toukan <tariqt@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en_fs.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_fs.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
index d2f0773f95c6..82dc114284da 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
@@ -1346,12 +1346,21 @@ int mlx5e_fs_init(struct mlx5e_priv *priv)
{
priv->fs.vlan = kvzalloc(sizeof(*priv->fs.vlan), GFP_KERNEL);
if (!priv->fs.vlan)
- return -ENOMEM;
+ goto err;
+ priv->fs.tc = kvzalloc(sizeof(*priv->fs.tc), GFP_KERNEL);
+ if (!priv->fs.tc)
+ goto err_free_vlan;
return 0;
+err_free_vlan:
+ kvfree(priv->fs.vlan);
+ priv->fs.vlan = NULL;
+err:
+ return -ENOMEM;
}
void mlx5e_fs_cleanup(struct mlx5e_priv *priv)
{
+ kvfree(priv->fs.tc);
kvfree(priv->fs.vlan);
priv->fs.vlan = NULL;
}