Commit 90bbb74a authored by Yan Burman's avatar Yan Burman Committed by David S. Miller

net/mlx4_en: Save previous MAC address of the port so we can replace it later

In preparation to having more than one unicast MAC per port, we need to keep track
of the previous MAC address in the flow of ndo_set_mac_address,
so that mlx4_en_replace_mac will know what to replace.
Signed-off-by: default avatarYan Burman <yanb@mellanox.com>
Signed-off-by: default avatarAmir Vadai <amirv@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0eb74fdd
...@@ -591,7 +591,7 @@ static void mlx4_en_put_qp(struct mlx4_en_priv *priv) ...@@ -591,7 +591,7 @@ static void mlx4_en_put_qp(struct mlx4_en_priv *priv)
} }
static int mlx4_en_replace_mac(struct mlx4_en_priv *priv, int qpn, static int mlx4_en_replace_mac(struct mlx4_en_priv *priv, int qpn,
unsigned char *new_mac) unsigned char *new_mac, unsigned char *prev_mac)
{ {
struct mlx4_en_dev *mdev = priv->mdev; struct mlx4_en_dev *mdev = priv->mdev;
struct mlx4_dev *dev = mdev->dev; struct mlx4_dev *dev = mdev->dev;
...@@ -657,7 +657,7 @@ static void mlx4_en_do_set_mac(struct work_struct *work) ...@@ -657,7 +657,7 @@ static void mlx4_en_do_set_mac(struct work_struct *work)
if (priv->port_up) { if (priv->port_up) {
/* Remove old MAC and insert the new one */ /* Remove old MAC and insert the new one */
err = mlx4_en_replace_mac(priv, priv->base_qpn, err = mlx4_en_replace_mac(priv, priv->base_qpn,
priv->dev->dev_addr); priv->dev->dev_addr, priv->prev_mac);
if (err) if (err)
en_err(priv, "Failed changing HW MAC address\n"); en_err(priv, "Failed changing HW MAC address\n");
memcpy(priv->prev_mac, priv->dev->dev_addr, memcpy(priv->prev_mac, priv->dev->dev_addr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment