Skip to content

Commit

Permalink
net/mlx5e: Use devlink virtual flavour for VF devlink port
Browse files Browse the repository at this point in the history
Use newly introduce 'virtual' port flavour for devlink
port of PCI VF devlink device in non-representors mode.

While at it, remove recently introduced empty lines at end of the file.

Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Parav Pandit authored and David S. Miller committed Mar 3, 2020
1 parent acf1ee4 commit 162add8
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 24 deletions.
2 changes: 1 addition & 1 deletion drivers/net/ethernet/mellanox/mlx5/core/en.h
Original file line number Diff line number Diff line change
Expand Up @@ -880,7 +880,7 @@ struct mlx5e_priv {
#endif
struct devlink_health_reporter *tx_reporter;
struct devlink_health_reporter *rx_reporter;
struct devlink_port dl_phy_port;
struct devlink_port dl_port;
struct mlx5e_xsk xsk;
#if IS_ENABLED(CONFIG_PCI_HYPERV_INTERFACE)
struct mlx5e_hv_vhca_stats_agent stats_agent;
Expand Down
39 changes: 23 additions & 16 deletions drivers/net/ethernet/mellanox/mlx5/core/en/devlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,43 @@

#include "en/devlink.h"

int mlx5e_devlink_phy_port_register(struct net_device *dev)
int mlx5e_devlink_port_register(struct net_device *netdev)
{
struct mlx5_core_dev *dev;
struct mlx5e_priv *priv;
struct devlink *devlink;
int err;

priv = netdev_priv(dev);
devlink = priv_to_devlink(priv->mdev);

devlink_port_attrs_set(&priv->dl_phy_port,
DEVLINK_PORT_FLAVOUR_PHYSICAL,
PCI_FUNC(priv->mdev->pdev->devfn),
false, 0,
NULL, 0);
err = devlink_port_register(devlink, &priv->dl_phy_port, 1);
priv = netdev_priv(netdev);
dev = priv->mdev;

if (mlx5_core_is_pf(dev))
devlink_port_attrs_set(&priv->dl_port,
DEVLINK_PORT_FLAVOUR_PHYSICAL,
PCI_FUNC(dev->pdev->devfn),
false, 0,
NULL, 0);
else
devlink_port_attrs_set(&priv->dl_port,
DEVLINK_PORT_FLAVOUR_VIRTUAL,
0, false, 0, NULL, 0);

devlink = priv_to_devlink(dev);
err = devlink_port_register(devlink, &priv->dl_port, 1);
if (err)
return err;
devlink_port_type_eth_set(&priv->dl_phy_port, dev);
devlink_port_type_eth_set(&priv->dl_port, netdev);
return 0;
}

void mlx5e_devlink_phy_port_unregister(struct mlx5e_priv *priv)
void mlx5e_devlink_port_unregister(struct mlx5e_priv *priv)
{
devlink_port_unregister(&priv->dl_phy_port);
devlink_port_unregister(&priv->dl_port);
}

struct devlink_port *mlx5e_get_devlink_phy_port(struct net_device *dev)
struct devlink_port *mlx5e_get_devlink_port(struct net_device *dev)
{
struct mlx5e_priv *priv = netdev_priv(dev);

return &priv->dl_phy_port;
return &priv->dl_port;
}

7 changes: 3 additions & 4 deletions drivers/net/ethernet/mellanox/mlx5/core/en/devlink.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@
#include <net/devlink.h>
#include "en.h"

int mlx5e_devlink_phy_port_register(struct net_device *dev);
void mlx5e_devlink_phy_port_unregister(struct mlx5e_priv *priv);
struct devlink_port *mlx5e_get_devlink_phy_port(struct net_device *dev);
int mlx5e_devlink_port_register(struct net_device *dev);
void mlx5e_devlink_port_unregister(struct mlx5e_priv *priv);
struct devlink_port *mlx5e_get_devlink_port(struct net_device *dev);

#endif

6 changes: 3 additions & 3 deletions drivers/net/ethernet/mellanox/mlx5/core/en_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4606,7 +4606,7 @@ const struct net_device_ops mlx5e_netdev_ops = {
.ndo_set_vf_link_state = mlx5e_set_vf_link_state,
.ndo_get_vf_stats = mlx5e_get_vf_stats,
#endif
.ndo_get_devlink_port = mlx5e_get_devlink_phy_port,
.ndo_get_devlink_port = mlx5e_get_devlink_port,
};

static int mlx5e_check_required_hca_cap(struct mlx5_core_dev *mdev)
Expand Down Expand Up @@ -5473,7 +5473,7 @@ static void *mlx5e_add(struct mlx5_core_dev *mdev)
goto err_detach;
}

err = mlx5e_devlink_phy_port_register(netdev);
err = mlx5e_devlink_port_register(netdev);
if (err) {
mlx5_core_err(mdev, "mlx5e_devlink_phy_port_register failed, %d\n", err);
goto err_unregister_netdev;
Expand Down Expand Up @@ -5507,7 +5507,7 @@ static void mlx5e_remove(struct mlx5_core_dev *mdev, void *vpriv)
#ifdef CONFIG_MLX5_CORE_EN_DCB
mlx5e_dcbnl_delete_app(priv);
#endif
mlx5e_devlink_phy_port_unregister(priv);
mlx5e_devlink_port_unregister(priv);
unregister_netdev(priv->netdev);
mlx5e_detach(mdev, vpriv);
mlx5e_destroy_netdev(priv);
Expand Down

0 comments on commit 162add8

Please sign in to comment.