diff options
author | Jiri Pirko <jiri@resnulli.us> | 2013-11-28 18:01:38 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-29 16:34:33 -0500 |
commit | f5e0d34382e18f396d7673a84df8e3342bea7eb6 (patch) | |
tree | 9c72ed100c60d42dbada63d3a42966a9099881e9 /drivers/net/team | |
parent | d3f7d56a7a4671d395e8af87071068a195257bf6 (diff) | |
download | op-kernel-dev-f5e0d34382e18f396d7673a84df8e3342bea7eb6.zip op-kernel-dev-f5e0d34382e18f396d7673a84df8e3342bea7eb6.tar.gz |
team: fix master carrier set when user linkup is enabled
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@redhat.com>
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/team')
-rw-r--r-- | drivers/net/team/team.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index 34b0de0..736050d 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c @@ -1366,6 +1366,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) { @@ -1373,6 +1375,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; } @@ -1392,6 +1395,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; } |