svn commit: r273881 - stable/9/sys/ofed/drivers/net/mlx4
Hans Petter Selasky
hselasky at FreeBSD.org
Fri Oct 31 07:18:28 UTC 2014
Author: hselasky
Date: Fri Oct 31 07:18:27 2014
New Revision: 273881
URL: https://svnweb.freebsd.org/changeset/base/273881
Log:
MFC r273593:
Update the network interface baudrate integer according to the actual
line rate.
Sponsored by: Mellanox Technologies
Modified:
stable/9/sys/ofed/drivers/net/mlx4/en_netdev.c
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/ofed/drivers/net/mlx4/en_netdev.c
==============================================================================
--- stable/9/sys/ofed/drivers/net/mlx4/en_netdev.c Fri Oct 31 07:08:32 2014 (r273880)
+++ stable/9/sys/ofed/drivers/net/mlx4/en_netdev.c Fri Oct 31 07:18:27 2014 (r273881)
@@ -970,6 +970,9 @@ static void mlx4_en_do_set_rx_mode(struc
/* Important note: the following call for if_link_state_change
* is needed for interface up scenario (start port, link state
* change) */
+ /* update netif baudrate */
+ priv->dev->if_baudrate =
+ IF_Mbps(priv->port_state.link_speed);
if_link_state_change(priv->dev, LINK_STATE_UP);
en_dbg(HW, priv, "Link Up\n");
}
@@ -1186,6 +1189,9 @@ static void mlx4_en_linkstate(struct wor
if (linkstate == MLX4_DEV_EVENT_PORT_DOWN) {
en_info(priv, "Link Down\n");
if_link_state_change(priv->dev, LINK_STATE_DOWN);
+ /* update netif baudrate */
+ priv->dev->if_baudrate = 0;
+
/* make sure the port is up before notifying the OS.
* This is tricky since we get here on INIT_PORT and
* in such case we can't tell the OS the port is up.
@@ -1193,6 +1199,10 @@ static void mlx4_en_linkstate(struct wor
* in set_rx_mode.
* */
} else if (priv->port_up && (linkstate == MLX4_DEV_EVENT_PORT_UP)){
+ if (mlx4_en_QUERY_PORT(priv->mdev, priv->port))
+ en_info(priv, "Query port failed\n");
+ priv->dev->if_baudrate =
+ IF_Mbps(priv->port_state.link_speed);
en_info(priv, "Link Up\n");
if_link_state_change(priv->dev, LINK_STATE_UP);
}
@@ -1978,7 +1988,6 @@ int mlx4_en_init_netdev(struct mlx4_en_d
dev->if_softc = priv;
if_initname(dev, "mlxen", atomic_fetchadd_int(&mlx4_en_unit, 1));
dev->if_mtu = ETHERMTU;
- dev->if_baudrate = 1000000000;
dev->if_init = mlx4_en_open;
dev->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
dev->if_ioctl = mlx4_en_ioctl;
More information about the svn-src-stable-9
mailing list