uint8_t fdb_def_rule; /* Whether fdb jump to table 1 is configured. */
struct mlx5_mp_id mp_id; /* ID of a multi-process process */
LIST_HEAD(fdir, mlx5_fdir_flow) fdir_flows; /* fdir flows. */
+ rte_spinlock_t shared_act_sl; /* Shared actions spinlock. */
LIST_HEAD(shared_action, rte_flow_shared_action) shared_actions;
/* shared actions */
};
if (shared_action) {
__atomic_add_fetch(&shared_action->refcnt, 1,
__ATOMIC_RELAXED);
+ rte_spinlock_lock(&priv->shared_act_sl);
LIST_INSERT_HEAD(&priv->shared_actions, shared_action, next);
+ rte_spinlock_unlock(&priv->shared_act_sl);
}
return shared_action;
}
struct rte_flow_shared_action *action,
struct rte_flow_error *error)
{
+ struct mlx5_priv *priv = dev->data->dev_private;
int ret;
switch (action->type) {
}
if (ret)
return ret;
+ rte_spinlock_lock(&priv->shared_act_sl);
LIST_REMOVE(action, next);
+ rte_spinlock_unlock(&priv->shared_act_sl);
rte_free(action);
return 0;
}