net/mlx5: E-Switch, Simplify representor load/unload callback API
authorMark Bloch <markb@mellanox.com>
Fri, 25 Aug 2017 12:13:59 +0000 (12:13 +0000)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 28 Dec 2017 10:36:33 +0000 (12:36 +0200)
In the load() callback for loading representors we don't really need
struct mlx5_eswitch but struct mlx5_core_dev, pass it directly.

In the unload() callback for unloading representors we don't need the
struct mlx5_eswitch argument, remove it.

Signed-off-by: Mark Bloch <markb@mellanox.com>
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c

index 4661ef12c18c8c506031234add95e892fb0de828..6d2219f3acf6929472db5b54e3a4d759fe466b1b 100644 (file)
@@ -967,7 +967,7 @@ static const struct mlx5e_profile mlx5e_rep_profile = {
 /* e-Switch vport representors */
 
 static int
-mlx5e_nic_rep_load(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep)
+mlx5e_nic_rep_load(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep)
 {
        struct mlx5e_priv *priv = netdev_priv(rep->netdev);
        struct mlx5e_rep_priv *rpriv = priv->ppriv;
@@ -992,7 +992,7 @@ err_remove_sqs:
 }
 
 static void
-mlx5e_nic_rep_unload(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep)
+mlx5e_nic_rep_unload(struct mlx5_eswitch_rep *rep)
 {
        struct mlx5e_priv *priv = netdev_priv(rep->netdev);
        struct mlx5e_rep_priv *rpriv = priv->ppriv;
@@ -1008,7 +1008,7 @@ mlx5e_nic_rep_unload(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep)
 }
 
 static int
-mlx5e_vport_rep_load(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep)
+mlx5e_vport_rep_load(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep)
 {
        struct mlx5e_rep_priv *rpriv;
        struct net_device *netdev;
@@ -1019,7 +1019,7 @@ mlx5e_vport_rep_load(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep)
        if (!rpriv)
                return -ENOMEM;
 
-       netdev = mlx5e_create_netdev(esw->dev, &mlx5e_rep_profile, rpriv);
+       netdev = mlx5e_create_netdev(dev, &mlx5e_rep_profile, rpriv);
        if (!netdev) {
                pr_warn("Failed to create representor netdev for vport %d\n",
                        rep->vport);
@@ -1044,7 +1044,7 @@ mlx5e_vport_rep_load(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep)
                goto err_detach_netdev;
        }
 
-       upriv = netdev_priv(mlx5_eswitch_get_uplink_netdev(esw));
+       upriv = netdev_priv(mlx5_eswitch_get_uplink_netdev(dev->priv.eswitch));
        err = tc_setup_cb_egdev_register(netdev, mlx5e_setup_tc_block_cb,
                                         upriv);
        if (err)
@@ -1076,7 +1076,7 @@ err_destroy_netdev:
 }
 
 static void
-mlx5e_vport_rep_unload(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep)
+mlx5e_vport_rep_unload(struct mlx5_eswitch_rep *rep)
 {
        struct net_device *netdev = rep->netdev;
        struct mlx5e_priv *priv = netdev_priv(netdev);
@@ -1085,7 +1085,7 @@ mlx5e_vport_rep_unload(struct mlx5_eswitch *esw, struct mlx5_eswitch_rep *rep)
        struct mlx5e_priv *upriv;
 
        unregister_netdev(rep->netdev);
-       upriv = netdev_priv(mlx5_eswitch_get_uplink_netdev(esw));
+       upriv = netdev_priv(mlx5_eswitch_get_uplink_netdev(priv->mdev->priv.eswitch));
        tc_setup_cb_egdev_unregister(netdev, mlx5e_setup_tc_block_cb,
                                     upriv);
        mlx5e_rep_neigh_cleanup(rpriv);
index 9722c2a96090092f16662ac562ecce0798a523ac..23808a65889cf601c4e02c97c5023394b7608994 100644 (file)
@@ -139,10 +139,9 @@ struct mlx5_esw_sq {
 };
 
 struct mlx5_eswitch_rep {
-       int                    (*load)(struct mlx5_eswitch *esw,
+       int                    (*load)(struct mlx5_core_dev *dev,
                                       struct mlx5_eswitch_rep *rep);
-       void                   (*unload)(struct mlx5_eswitch *esw,
-                                        struct mlx5_eswitch_rep *rep);
+       void                   (*unload)(struct mlx5_eswitch_rep *rep);
        u16                    vport;
        u8                     hw_id[ETH_ALEN];
        struct net_device      *netdev;
index 26fbc50ddc6db79248ad2f6ba5ac3cccd219e51a..aa20f51c0a995ad57ab9f64e6a8bf454f804c7b9 100644 (file)
@@ -777,7 +777,7 @@ static void esw_offloads_unload_reps(struct mlx5_eswitch *esw, int nvports)
                if (!rep->valid)
                        continue;
 
-               rep->unload(esw, rep);
+               rep->unload(rep);
        }
 }
 
@@ -792,7 +792,7 @@ static int esw_offloads_load_reps(struct mlx5_eswitch *esw, int nvports)
                if (!rep->valid)
                        continue;
 
-               err = rep->load(esw, rep);
+               err = rep->load(esw->dev, rep);
                if (err)
                        goto err_reps;
        }
@@ -1193,7 +1193,7 @@ void mlx5_eswitch_unregister_vport_rep(struct mlx5_eswitch *esw,
        rep = &offloads->vport_reps[vport_index];
 
        if (esw->mode == SRIOV_OFFLOADS && esw->vports[vport_index].enabled)
-               rep->unload(esw, rep);
+               rep->unload(rep);
 
        rep->valid = false;
 }