RDMA/mlx5: Use representor E-Switch when getting netdev and metadata
authorMark Bloch <mbloch@nvidia.com>
Thu, 11 Mar 2021 07:09:12 +0000 (23:09 -0800)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 12 Mar 2021 21:07:23 +0000 (13:07 -0800)
Now that a pointer to the managing E-Switch is stored in the representor
use it.

Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
Acked-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/infiniband/hw/mlx5/fs.c
drivers/infiniband/hw/mlx5/ib_rep.c
drivers/infiniband/hw/mlx5/main.c

index 25da0b05b4e2f032fc10163ecf84121dc8a25583..01370d9a871aa461faab6fe7c985c8f9a73dffed 100644 (file)
@@ -879,7 +879,7 @@ static void mlx5_ib_set_rule_source_port(struct mlx5_ib_dev *dev,
                                    misc_parameters_2);
 
                MLX5_SET(fte_match_set_misc2, misc, metadata_reg_c_0,
-                        mlx5_eswitch_get_vport_metadata_for_match(esw,
+                        mlx5_eswitch_get_vport_metadata_for_match(rep->esw,
                                                                   rep->vport));
                misc = MLX5_ADDR_OF(fte_match_param, spec->match_criteria,
                                    misc_parameters_2);
index 9164cc069ad407319af8c2741d35734652be12c9..4eae7131b0ce7a69a73c2c2e2e19c6d0674f6969 100644 (file)
@@ -20,7 +20,7 @@ mlx5_ib_set_vport_rep(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep)
        rep->rep_data[REP_IB].priv = ibdev;
        write_lock(&ibdev->port[vport_index].roce.netdev_lock);
        ibdev->port[vport_index].roce.netdev =
-               mlx5_ib_get_rep_netdev(dev->priv.eswitch, rep->vport);
+               mlx5_ib_get_rep_netdev(rep->esw, rep->vport);
        write_unlock(&ibdev->port[vport_index].roce.netdev_lock);
 
        return 0;
index 0d69a697d75f38b0db9eef85fab0ace9ac17a279..7a7f6ccd02a54f88c8dde4ec0dd61dd9554c3b6f 100644 (file)
@@ -126,7 +126,6 @@ static struct mlx5_roce *mlx5_get_rep_roce(struct mlx5_ib_dev *dev,
                                           struct net_device *ndev,
                                           u8 *port_num)
 {
-       struct mlx5_eswitch *esw = dev->mdev->priv.eswitch;
        struct net_device *rep_ndev;
        struct mlx5_ib_port *port;
        int i;
@@ -137,7 +136,7 @@ static struct mlx5_roce *mlx5_get_rep_roce(struct mlx5_ib_dev *dev,
                        continue;
 
                read_lock(&port->roce.netdev_lock);
-               rep_ndev = mlx5_ib_get_rep_netdev(esw,
+               rep_ndev = mlx5_ib_get_rep_netdev(port->rep->esw,
                                                  port->rep->vport);
                if (rep_ndev == ndev) {
                        read_unlock(&port->roce.netdev_lock);