diff options
author | Lama Kayal <lkayal@nvidia.com> | 2022-01-10 13:36:59 +0200 |
---|---|---|
committer | Saeed Mahameed <saeedm@nvidia.com> | 2022-07-28 13:55:27 -0700 |
commit | 65f586c2730ca342404abe1363a7ecaa8f48ca38 (patch) | |
tree | 9d834d03627042bf45350d6b92fba956768587b5 /drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | |
parent | 7d1a5ce46e475378761432263e9b1a385968a9af (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.c | 11 |
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; } |