mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
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>
This commit is contained in:
parent
d3f7d56a7a
commit
f5e0d34382
1 changed files with 4 additions and 0 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue