From c5ac31b88e0171081ae18374f6d74289b5dedcf1 Mon Sep 17 00:00:00 2001 From: Flavio Leitner Date: Tue, 5 Feb 2013 09:30:55 +0000 Subject: [PATCH] --- yaml --- r: 352107 b: refs/heads/master c: e185483e6b84c127d0b1c890b6b703701ae52d35 h: refs/heads/master i: 352105: 9397e1050fa87dd6167f4417da352b8d6c327103 352103: 158ed73c983a25e12c44fc850a5c0d4f85a31d09 v: v3 --- [refs] | 2 +- trunk/drivers/net/team/team.c | 8 ++++++++ trunk/include/linux/if_team.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index e0e241f2288a..8e219f886feb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3b72c2fe0c6bbec42ed7f899931daef227b80322 +refs/heads/master: e185483e6b84c127d0b1c890b6b703701ae52d35 diff --git a/trunk/drivers/net/team/team.c b/trunk/drivers/net/team/team.c index 694ccf6d71a3..05c5efe84591 100644 --- a/trunk/drivers/net/team/team.c +++ b/trunk/drivers/net/team/team.c @@ -508,6 +508,7 @@ static bool team_is_mode_set(struct team *team) static void team_set_no_mode(struct team *team) { + team->user_carrier_enabled = false; team->mode = &__team_no_mode; } @@ -1710,6 +1711,10 @@ static netdev_features_t team_fix_features(struct net_device *dev, static int team_change_carrier(struct net_device *dev, bool new_carrier) { + struct team *team = netdev_priv(dev); + + team->user_carrier_enabled = true; + if (new_carrier) netif_carrier_on(dev); else @@ -2573,6 +2578,9 @@ static void __team_carrier_check(struct team *team) struct team_port *port; bool team_linkup; + if (team->user_carrier_enabled) + return; + team_linkup = false; list_for_each_entry(port, &team->port_list, list) { if (port->linkup) { diff --git a/trunk/include/linux/if_team.h b/trunk/include/linux/if_team.h index 0245def2aa93..4648d8021244 100644 --- a/trunk/include/linux/if_team.h +++ b/trunk/include/linux/if_team.h @@ -186,6 +186,7 @@ struct team { const struct team_mode *mode; struct team_mode_ops ops; + bool user_carrier_enabled; bool queue_override_enabled; struct list_head *qom_lists; /* array of queue override mapping lists */ long mode_priv[TEAM_MODE_PRIV_LONGS];