net/mlx5: E-Switch, Convert a macro to a helper routine
Convert ESW_ALLOWED macro to a helper routine so that it can be used in other eswitch files. Signed-off-by: Parav Pandit <parav@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
13795553a8
commit
b16f2bb6b6
@ -1443,8 +1443,6 @@ static void mlx5_eswitch_clear_vf_vports_info(struct mlx5_eswitch *esw)
|
||||
}
|
||||
|
||||
/* Public E-Switch API */
|
||||
#define ESW_ALLOWED(esw) ((esw) && MLX5_ESWITCH_MANAGER((esw)->dev))
|
||||
|
||||
int mlx5_eswitch_load_vport(struct mlx5_eswitch *esw, u16 vport_num,
|
||||
enum mlx5_eswitch_vport_event enabled_events)
|
||||
{
|
||||
@ -1713,7 +1711,7 @@ int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return 0;
|
||||
|
||||
down_write(&esw->mode_lock);
|
||||
@ -1773,7 +1771,7 @@ void mlx5_eswitch_disable_locked(struct mlx5_eswitch *esw, bool clear_vf)
|
||||
|
||||
void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf)
|
||||
{
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return;
|
||||
|
||||
down_write(&esw->mode_lock);
|
||||
@ -2023,7 +2021,7 @@ int mlx5_eswitch_set_vport_state(struct mlx5_eswitch *esw,
|
||||
int other_vport = 1;
|
||||
int err = 0;
|
||||
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return -EPERM;
|
||||
if (IS_ERR(evport))
|
||||
return PTR_ERR(evport);
|
||||
@ -2111,7 +2109,7 @@ int mlx5_eswitch_set_vport_vlan(struct mlx5_eswitch *esw,
|
||||
u8 set_flags = 0;
|
||||
int err = 0;
|
||||
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return -EPERM;
|
||||
|
||||
if (vlan || qos)
|
||||
@ -2140,7 +2138,7 @@ int mlx5_eswitch_set_vport_spoofchk(struct mlx5_eswitch *esw,
|
||||
bool pschk;
|
||||
int err = 0;
|
||||
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return -EPERM;
|
||||
if (IS_ERR(evport))
|
||||
return PTR_ERR(evport);
|
||||
@ -2248,7 +2246,7 @@ int mlx5_eswitch_set_vepa(struct mlx5_eswitch *esw, u8 setting)
|
||||
if (!esw)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return -EPERM;
|
||||
|
||||
mutex_lock(&esw->state_lock);
|
||||
@ -2269,7 +2267,7 @@ int mlx5_eswitch_get_vepa(struct mlx5_eswitch *esw, u8 *setting)
|
||||
if (!esw)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return -EPERM;
|
||||
|
||||
if (esw->mode != MLX5_ESWITCH_LEGACY)
|
||||
@ -2285,7 +2283,7 @@ int mlx5_eswitch_set_vport_trust(struct mlx5_eswitch *esw,
|
||||
struct mlx5_vport *evport = mlx5_eswitch_get_vport(esw, vport);
|
||||
int err = 0;
|
||||
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return -EPERM;
|
||||
if (IS_ERR(evport))
|
||||
return PTR_ERR(evport);
|
||||
@ -2369,7 +2367,7 @@ int mlx5_eswitch_set_vport_rate(struct mlx5_eswitch *esw, u16 vport,
|
||||
bool max_rate_supported;
|
||||
int err = 0;
|
||||
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return -EPERM;
|
||||
if (IS_ERR(evport))
|
||||
return PTR_ERR(evport);
|
||||
@ -2534,7 +2532,7 @@ u8 mlx5_eswitch_mode(struct mlx5_core_dev *dev)
|
||||
{
|
||||
struct mlx5_eswitch *esw = dev->priv.eswitch;
|
||||
|
||||
return ESW_ALLOWED(esw) ? esw->mode : MLX5_ESWITCH_NONE;
|
||||
return mlx5_esw_allowed(esw) ? esw->mode : MLX5_ESWITCH_NONE;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx5_eswitch_mode);
|
||||
|
||||
@ -2544,7 +2542,7 @@ mlx5_eswitch_get_encap_mode(const struct mlx5_core_dev *dev)
|
||||
struct mlx5_eswitch *esw;
|
||||
|
||||
esw = dev->priv.eswitch;
|
||||
return ESW_ALLOWED(esw) ? esw->offloads.encap :
|
||||
return mlx5_esw_allowed(esw) ? esw->offloads.encap :
|
||||
DEVLINK_ESWITCH_ENCAP_MODE_NONE;
|
||||
}
|
||||
EXPORT_SYMBOL(mlx5_eswitch_get_encap_mode);
|
||||
@ -2590,7 +2588,7 @@ bool mlx5_esw_hold(struct mlx5_core_dev *mdev)
|
||||
struct mlx5_eswitch *esw = mdev->priv.eswitch;
|
||||
|
||||
/* e.g. VF doesn't have eswitch so nothing to do */
|
||||
if (!ESW_ALLOWED(esw))
|
||||
if (!mlx5_esw_allowed(esw))
|
||||
return true;
|
||||
|
||||
if (down_read_trylock(&esw->mode_lock) != 0)
|
||||
@ -2607,7 +2605,7 @@ void mlx5_esw_release(struct mlx5_core_dev *mdev)
|
||||
{
|
||||
struct mlx5_eswitch *esw = mdev->priv.eswitch;
|
||||
|
||||
if (ESW_ALLOWED(esw))
|
||||
if (mlx5_esw_allowed(esw))
|
||||
up_read(&esw->mode_lock);
|
||||
}
|
||||
|
||||
@ -2619,7 +2617,7 @@ void mlx5_esw_get(struct mlx5_core_dev *mdev)
|
||||
{
|
||||
struct mlx5_eswitch *esw = mdev->priv.eswitch;
|
||||
|
||||
if (ESW_ALLOWED(esw))
|
||||
if (mlx5_esw_allowed(esw))
|
||||
atomic64_inc(&esw->user_count);
|
||||
}
|
||||
|
||||
@ -2631,7 +2629,7 @@ void mlx5_esw_put(struct mlx5_core_dev *mdev)
|
||||
{
|
||||
struct mlx5_eswitch *esw = mdev->priv.eswitch;
|
||||
|
||||
if (ESW_ALLOWED(esw))
|
||||
if (mlx5_esw_allowed(esw))
|
||||
atomic64_dec_if_positive(&esw->user_count);
|
||||
}
|
||||
|
||||
|
@ -521,6 +521,11 @@ const u32 *mlx5_esw_query_functions(struct mlx5_core_dev *dev);
|
||||
#define esw_debug(dev, format, ...) \
|
||||
mlx5_core_dbg_mask(dev, MLX5_DEBUG_ESWITCH_MASK, format, ##__VA_ARGS__)
|
||||
|
||||
static inline bool mlx5_esw_allowed(const struct mlx5_eswitch *esw)
|
||||
{
|
||||
return esw && MLX5_ESWITCH_MANAGER(esw->dev);
|
||||
}
|
||||
|
||||
/* The returned number is valid only when the dev is eswitch manager. */
|
||||
static inline u16 mlx5_eswitch_manager_vport(struct mlx5_core_dev *dev)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user