diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/team/team_mode_activebackup.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/team/team_mode_activebackup.c b/drivers/net/team/team_mode_activebackup.c index 6262b4defd93..40fd3381b693 100644 --- a/drivers/net/team/team_mode_activebackup.c +++ b/drivers/net/team/team_mode_activebackup.c | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | struct ab_priv { | 20 | struct ab_priv { |
21 | struct team_port __rcu *active_port; | 21 | struct team_port __rcu *active_port; |
22 | struct team_option_inst_info *ap_opt_inst_info; | ||
22 | }; | 23 | }; |
23 | 24 | ||
24 | static struct ab_priv *ab_priv(struct team *team) | 25 | static struct ab_priv *ab_priv(struct team *team) |
@@ -54,8 +55,17 @@ drop: | |||
54 | 55 | ||
55 | static void ab_port_leave(struct team *team, struct team_port *port) | 56 | static void ab_port_leave(struct team *team, struct team_port *port) |
56 | { | 57 | { |
57 | if (ab_priv(team)->active_port == port) | 58 | if (ab_priv(team)->active_port == port) { |
58 | RCU_INIT_POINTER(ab_priv(team)->active_port, NULL); | 59 | RCU_INIT_POINTER(ab_priv(team)->active_port, NULL); |
60 | team_option_inst_set_change(ab_priv(team)->ap_opt_inst_info); | ||
61 | } | ||
62 | } | ||
63 | |||
64 | static int ab_active_port_init(struct team *team, | ||
65 | struct team_option_inst_info *info) | ||
66 | { | ||
67 | ab_priv(team)->ap_opt_inst_info = info; | ||
68 | return 0; | ||
59 | } | 69 | } |
60 | 70 | ||
61 | static int ab_active_port_get(struct team *team, struct team_gsetter_ctx *ctx) | 71 | static int ab_active_port_get(struct team *team, struct team_gsetter_ctx *ctx) |
@@ -88,6 +98,7 @@ static const struct team_option ab_options[] = { | |||
88 | { | 98 | { |
89 | .name = "activeport", | 99 | .name = "activeport", |
90 | .type = TEAM_OPTION_TYPE_U32, | 100 | .type = TEAM_OPTION_TYPE_U32, |
101 | .init = ab_active_port_init, | ||
91 | .getter = ab_active_port_get, | 102 | .getter = ab_active_port_get, |
92 | .setter = ab_active_port_set, | 103 | .setter = ab_active_port_set, |
93 | }, | 104 | }, |