Skip to content

Commit

Permalink
mlx4_en: reconfiguring mac address.
Browse files Browse the repository at this point in the history
When Mac address is removed from one port of the CX2 device, the other device
should reconfigure its Mac.
This fixes an issue with failover, when both ports have the same Mac address,
and one of the ports, is closed, the second one stops receiving traffic.
(bugzilla #1965 at bugs.openfabrics.org)

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Yevgeny Petrilin authored and David S. Miller committed Aug 24, 2010
1 parent bc081ce commit d7e1a48
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/net/mlx4/en_netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -513,6 +513,10 @@ static void mlx4_en_do_get_stats(struct work_struct *work)

queue_delayed_work(mdev->workqueue, &priv->stats_task, STATS_DELAY);
}
if (mdev->mac_removed[MLX4_MAX_PORTS + 1 - priv->port]) {
queue_work(mdev->workqueue, &priv->mac_task);
mdev->mac_removed[MLX4_MAX_PORTS + 1 - priv->port] = 0;
}
mutex_unlock(&mdev->state_lock);
}

Expand Down Expand Up @@ -653,6 +657,7 @@ int mlx4_en_start_port(struct net_device *dev)
en_err(priv, "Failed setting port mac\n");
goto tx_err;
}
mdev->mac_removed[priv->port] = 0;

/* Init port */
en_dbg(HW, priv, "Initializing port\n");
Expand Down Expand Up @@ -709,6 +714,7 @@ void mlx4_en_stop_port(struct net_device *dev)

/* Unregister Mac address for the port */
mlx4_unregister_mac(mdev->dev, priv->port, priv->mac_index);
mdev->mac_removed[priv->port] = 1;

/* Free TX Rings */
for (i = 0; i < priv->tx_ring_num; i++) {
Expand Down
1 change: 1 addition & 0 deletions drivers/net/mlx4/mlx4_en.h
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,7 @@ struct mlx4_en_dev {
struct mlx4_mr mr;
u32 priv_pdn;
spinlock_t uar_lock;
u8 mac_removed[MLX4_MAX_PORTS + 1];
};


Expand Down

0 comments on commit d7e1a48

Please sign in to comment.