Update the network interface baudrate integer according to the actual
line rate. Submitted by: jhb @ MFC after: 1 week
This commit is contained in:
parent
55fd0faa7e
commit
7cabdf161d
@ -970,6 +970,9 @@ static void mlx4_en_do_set_rx_mode(struct work_struct *work)
|
||||
/* 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 work_struct *work)
|
||||
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 work_struct *work)
|
||||
* 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_dev *mdev, int port,
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user