Skip to content

Commit

Permalink
team: use operstate consistently for linkup
Browse files Browse the repository at this point in the history
When a port is added to a team, its initial state is derived
from netif_carrier_ok rather than netif_oper_up.
If it is carrier up but operationally down at the time of being
added, the port state.linkup will be set prematurely.
port state.linkup should be set consistently using
netif_oper_up rather than netif_carrier_ok.

Fixes: f1d22a1 ("team: account for oper state")
Signed-off-by: George Wilkie <gwilkie@vyatta.att-mail.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
George Wilkie authored and davem330 committed Feb 22, 2019
1 parent c286909 commit 8c7a772
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/net/team/team.c
Original file line number Diff line number Diff line change
Expand Up @@ -1256,7 +1256,7 @@ static int team_port_add(struct team *team, struct net_device *port_dev,
list_add_tail_rcu(&port->list, &team->port_list);
team_port_enable(team, port);
__team_compute_features(team);
__team_port_change_port_added(port, !!netif_carrier_ok(port_dev));
__team_port_change_port_added(port, !!netif_oper_up(port_dev));
__team_options_change_check(team);

netdev_info(dev, "Port device %s added\n", portname);
Expand Down Expand Up @@ -2915,7 +2915,7 @@ static int team_device_event(struct notifier_block *unused,

switch (event) {
case NETDEV_UP:
if (netif_carrier_ok(dev))
if (netif_oper_up(dev))
team_port_change_check(port, true);
break;
case NETDEV_DOWN:
Expand Down

0 comments on commit 8c7a772

Please sign in to comment.