/* 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;
 }
 
 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;
 }
 
 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;
        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);
                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)
 }
 
 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);
        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);
 
 };
 
 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;