mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-10 15:54:39 +08:00
net/mlx5e: Vxlan, add direct delete function
Add direct vxlan delete function to be called from vxlan_delete_work. Needed in downstream patch. Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
This commit is contained in:
parent
278d7f3dc0
commit
0f647bfcd0
@ -158,18 +158,14 @@ static void mlx5e_vxlan_add_work(struct work_struct *work)
|
||||
kfree(vxlan_work);
|
||||
}
|
||||
|
||||
static void mlx5e_vxlan_del_work(struct work_struct *work)
|
||||
static void mlx5e_vxlan_del_port(struct mlx5e_priv *priv, u16 port)
|
||||
{
|
||||
struct mlx5e_vxlan_work *vxlan_work =
|
||||
container_of(work, struct mlx5e_vxlan_work, work);
|
||||
struct mlx5e_priv *priv = vxlan_work->priv;
|
||||
struct mlx5e_vxlan_db *vxlan_db = &priv->vxlan;
|
||||
u16 port = vxlan_work->port;
|
||||
struct mlx5e_vxlan *vxlan;
|
||||
bool remove = false;
|
||||
|
||||
mutex_lock(&priv->state_lock);
|
||||
spin_lock_bh(&vxlan_db->lock);
|
||||
|
||||
vxlan = mlx5e_vxlan_lookup_port_locked(priv, port);
|
||||
if (!vxlan)
|
||||
goto out_unlock;
|
||||
@ -187,6 +183,17 @@ out_unlock:
|
||||
kfree(vxlan);
|
||||
vxlan_db->num_ports--;
|
||||
}
|
||||
}
|
||||
|
||||
static void mlx5e_vxlan_del_work(struct work_struct *work)
|
||||
{
|
||||
struct mlx5e_vxlan_work *vxlan_work =
|
||||
container_of(work, struct mlx5e_vxlan_work, work);
|
||||
struct mlx5e_priv *priv = vxlan_work->priv;
|
||||
u16 port = vxlan_work->port;
|
||||
|
||||
mutex_lock(&priv->state_lock);
|
||||
mlx5e_vxlan_del_port(priv, port);
|
||||
mutex_unlock(&priv->state_lock);
|
||||
kfree(vxlan_work);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user