[PATCH 3.11 040/208] team: fix master carrier set when user linkup is enabled

From: Luis Henriques
Date: Thu Dec 19 2013 - 08:02:11 EST


3.11.10.2 -stable review patch. If anyone has any objections, please let me know.

------------------

From: Jiri Pirko <jiri@xxxxxxxxxxx>

commit f5e0d34382e18f396d7673a84df8e3342bea7eb6 upstream.

When user linkup is enabled and user sets linkup of individual port,
we need to recompute linkup (carrier) of master interface so the change
is reflected. Fix this by calling __team_carrier_check() which does the
needed work.

Please apply to all stable kernels as well. Thanks.

Reported-by: Jan Tluka <jtluka@xxxxxxxxxx>
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Luis Henriques <luis.henriques@xxxxxxxxxxxxx>
---
drivers/net/team/team.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index bff7e0b..8aa3540 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -1235,6 +1235,8 @@ static int team_user_linkup_option_get(struct team *team,
return 0;
}

+static void __team_carrier_check(struct team *team);
+
static int team_user_linkup_option_set(struct team *team,
struct team_gsetter_ctx *ctx)
{
@@ -1242,6 +1244,7 @@ static int team_user_linkup_option_set(struct team *team,

port->user.linkup = ctx->data.bool_val;
team_refresh_port_linkup(port);
+ __team_carrier_check(port->team);
return 0;
}

@@ -1261,6 +1264,7 @@ static int team_user_linkup_en_option_set(struct team *team,

port->user.linkup_enabled = ctx->data.bool_val;
team_refresh_port_linkup(port);
+ __team_carrier_check(port->team);
return 0;
}

--
1.8.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/