Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux
This series provides some low level updates for mlx5 driver needed for both rdma and netdev trees. 1) Termination flow steering table bits and hardware definitions. 2) Introduce the core dump HW access registers definitions. 3) Refactor and cleans-up VF representors functions handlers. 4) Renames host_params bits to function_changed bits and add the support for eswitch functions change event in the eswitch general case. (for both legacy and switchdev modes). 5) Potential error pointer dereference in error handling Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Cette révision appartient à :
@@ -60,7 +60,7 @@ mlx5_ib_vport_rep_load(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep)
|
||||
if (!__mlx5_ib_add(ibdev, profile))
|
||||
return -EINVAL;
|
||||
|
||||
rep->rep_if[REP_IB].priv = ibdev;
|
||||
rep->rep_data[REP_IB].priv = ibdev;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -70,13 +70,13 @@ mlx5_ib_vport_rep_unload(struct mlx5_eswitch_rep *rep)
|
||||
{
|
||||
struct mlx5_ib_dev *dev;
|
||||
|
||||
if (!rep->rep_if[REP_IB].priv ||
|
||||
if (!rep->rep_data[REP_IB].priv ||
|
||||
rep->vport != MLX5_VPORT_UPLINK)
|
||||
return;
|
||||
|
||||
dev = mlx5_ib_rep_to_dev(rep);
|
||||
__mlx5_ib_remove(dev, dev->profile, MLX5_IB_STAGE_MAX);
|
||||
rep->rep_if[REP_IB].priv = NULL;
|
||||
rep->rep_data[REP_IB].priv = NULL;
|
||||
}
|
||||
|
||||
static void *mlx5_ib_vport_get_proto_dev(struct mlx5_eswitch_rep *rep)
|
||||
@@ -84,16 +84,17 @@ static void *mlx5_ib_vport_get_proto_dev(struct mlx5_eswitch_rep *rep)
|
||||
return mlx5_ib_rep_to_dev(rep);
|
||||
}
|
||||
|
||||
static const struct mlx5_eswitch_rep_ops rep_ops = {
|
||||
.load = mlx5_ib_vport_rep_load,
|
||||
.unload = mlx5_ib_vport_rep_unload,
|
||||
.get_proto_dev = mlx5_ib_vport_get_proto_dev,
|
||||
};
|
||||
|
||||
void mlx5_ib_register_vport_reps(struct mlx5_core_dev *mdev)
|
||||
{
|
||||
struct mlx5_eswitch *esw = mdev->priv.eswitch;
|
||||
struct mlx5_eswitch_rep_if rep_if = {};
|
||||
|
||||
rep_if.load = mlx5_ib_vport_rep_load;
|
||||
rep_if.unload = mlx5_ib_vport_rep_unload;
|
||||
rep_if.get_proto_dev = mlx5_ib_vport_get_proto_dev;
|
||||
|
||||
mlx5_eswitch_register_vport_reps(esw, &rep_if, REP_IB);
|
||||
mlx5_eswitch_register_vport_reps(esw, &rep_ops, REP_IB);
|
||||
}
|
||||
|
||||
void mlx5_ib_unregister_vport_reps(struct mlx5_core_dev *mdev)
|
||||
|
@@ -72,6 +72,6 @@ struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw,
|
||||
static inline
|
||||
struct mlx5_ib_dev *mlx5_ib_rep_to_dev(struct mlx5_eswitch_rep *rep)
|
||||
{
|
||||
return (struct mlx5_ib_dev *)rep->rep_if[REP_IB].priv;
|
||||
return rep->rep_data[REP_IB].priv;
|
||||
}
|
||||
#endif /* __MLX5_IB_REP_H__ */
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur