Commit f5e0d343 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller

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: default avatarJan Tluka <jtluka@redhat.com>
Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d3f7d56a
...@@ -1366,6 +1366,8 @@ static int team_user_linkup_option_get(struct team *team, ...@@ -1366,6 +1366,8 @@ static int team_user_linkup_option_get(struct team *team,
return 0; return 0;
} }
static void __team_carrier_check(struct team *team);
static int team_user_linkup_option_set(struct team *team, static int team_user_linkup_option_set(struct team *team,
struct team_gsetter_ctx *ctx) struct team_gsetter_ctx *ctx)
{ {
...@@ -1373,6 +1375,7 @@ static int team_user_linkup_option_set(struct team *team, ...@@ -1373,6 +1375,7 @@ static int team_user_linkup_option_set(struct team *team,
port->user.linkup = ctx->data.bool_val; port->user.linkup = ctx->data.bool_val;
team_refresh_port_linkup(port); team_refresh_port_linkup(port);
__team_carrier_check(port->team);
return 0; return 0;
} }
...@@ -1392,6 +1395,7 @@ static int team_user_linkup_en_option_set(struct team *team, ...@@ -1392,6 +1395,7 @@ static int team_user_linkup_en_option_set(struct team *team,
port->user.linkup_enabled = ctx->data.bool_val; port->user.linkup_enabled = ctx->data.bool_val;
team_refresh_port_linkup(port); team_refresh_port_linkup(port);
__team_carrier_check(port->team);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment