From 753dd70283c772ddcaf20c6f0ccb0ce5de5a5228 Mon Sep 17 00:00:00 2001 From: Raslan Darawsheh Date: Wed, 22 Jul 2020 12:07:55 +0300 Subject: [PATCH] net/mlx5: fix VF MAC address set over BlueField When trying to set MAC address of an ethernet device and if it was a representor, PMD sets the MAC over the corresponding VF instead. For the case of HPF (Host PF representor on BlueField), PMD shouldn't attempt to set it, since it doesn't have any corresponding VF and fails. This will fix the issue by setting the MAC on the dev directly. Fixes: 0d1d73170820 ("net/mlx5: set VF MAC address from host") Cc: stable@dpdk.org Signed-off-by: Raslan Darawsheh Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_mac.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_mac.c b/drivers/net/mlx5/mlx5_mac.c index 2d808d629b..88c52b29f4 100644 --- a/drivers/net/mlx5/mlx5_mac.c +++ b/drivers/net/mlx5/mlx5_mac.c @@ -157,8 +157,11 @@ mlx5_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) uint16_t port_id; struct mlx5_priv *priv = dev->data->dev_private; - /* Configuring the VF instead of its representor. */ - if (priv->representor) { + /* + * Configuring the VF instead of its representor, + * need to skip the special case of HPF on Bluefield. + */ + if (priv->representor && priv->representor_id >= 0) { DRV_LOG(DEBUG, "VF represented by port %u setting primary MAC address", dev->data->port_id); RTE_ETH_FOREACH_DEV_SIBLING(port_id, dev->data->port_id) { -- 2.20.1