aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/team
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-06-20 17:28:58 -0400
committerDavid S. Miller <davem@davemloft.net>2012-06-20 17:28:58 -0400
commitf643776e4d1906ceff59f18315d6aba8e85db343 (patch)
tree41abc4a03a50aede07e2f59021494894d9716d32 /drivers/net/team
parentd8dbd96e507e1f1133d346be123e7be4b16b72c3 (diff)
team: Revert previous two changes.
I didn't notice that these were superceded by a more uptodate version of the changes. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/team')
-rw-r--r--drivers/net/team/team_mode_activebackup.c7
-rw-r--r--drivers/net/team/team_mode_loadbalance.c10
2 files changed, 6 insertions, 11 deletions
diff --git a/drivers/net/team/team_mode_activebackup.c b/drivers/net/team/team_mode_activebackup.c
index c9e7621b4480..2fe02a8713ea 100644
--- a/drivers/net/team/team_mode_activebackup.c
+++ b/drivers/net/team/team_mode_activebackup.c
@@ -61,11 +61,8 @@ static void ab_port_leave(struct team *team, struct team_port *port)
61 61
62static int ab_active_port_get(struct team *team, struct team_gsetter_ctx *ctx) 62static int ab_active_port_get(struct team *team, struct team_gsetter_ctx *ctx)
63{ 63{
64 struct team_port *active_port; 64 if (ab_priv(team)->active_port)
65 65 ctx->data.u32_val = ab_priv(team)->active_port->dev->ifindex;
66 active_port = rcu_access_pointer(ab_priv(team)->active_port);
67 if (active_port)
68 ctx->data.u32_val = active_port->dev->ifindex;
69 else 66 else
70 ctx->data.u32_val = 0; 67 ctx->data.u32_val = 0;
71 return 0; 68 return 0;
diff --git a/drivers/net/team/team_mode_loadbalance.c b/drivers/net/team/team_mode_loadbalance.c
index c385b45cad18..45cc0951aa48 100644
--- a/drivers/net/team/team_mode_loadbalance.c
+++ b/drivers/net/team/team_mode_loadbalance.c
@@ -96,8 +96,8 @@ static void lb_tx_hash_to_port_mapping_null_port(struct team *team,
96 struct lb_port_mapping *pm; 96 struct lb_port_mapping *pm;
97 97
98 pm = &lb_priv->ex->tx_hash_to_port_mapping[i]; 98 pm = &lb_priv->ex->tx_hash_to_port_mapping[i];
99 if (rcu_access_pointer(pm->port) == port) { 99 if (pm->port == port) {
100 RCU_INIT_POINTER(pm->port, NULL); 100 rcu_assign_pointer(pm->port, NULL);
101 team_option_inst_set_change(pm->opt_inst_info); 101 team_option_inst_set_change(pm->opt_inst_info);
102 changed = true; 102 changed = true;
103 } 103 }
@@ -292,7 +292,7 @@ static int lb_bpf_func_set(struct team *team, struct team_gsetter_ctx *ctx)
292 if (lb_priv->ex->orig_fprog) { 292 if (lb_priv->ex->orig_fprog) {
293 /* Clear old filter data */ 293 /* Clear old filter data */
294 __fprog_destroy(lb_priv->ex->orig_fprog); 294 __fprog_destroy(lb_priv->ex->orig_fprog);
295 sk_unattached_filter_destroy(rcu_access_pointer(lb_priv->fp)); 295 sk_unattached_filter_destroy(lb_priv->fp);
296 } 296 }
297 297
298 rcu_assign_pointer(lb_priv->fp, fp); 298 rcu_assign_pointer(lb_priv->fp, fp);
@@ -303,11 +303,9 @@ static int lb_bpf_func_set(struct team *team, struct team_gsetter_ctx *ctx)
303static int lb_tx_method_get(struct team *team, struct team_gsetter_ctx *ctx) 303static int lb_tx_method_get(struct team *team, struct team_gsetter_ctx *ctx)
304{ 304{
305 struct lb_priv *lb_priv = get_lb_priv(team); 305 struct lb_priv *lb_priv = get_lb_priv(team);
306 lb_select_tx_port_func_t *func;
307 char *name; 306 char *name;
308 307
309 func = rcu_access_pointer(lb_priv->select_tx_port_func); 308 name = lb_select_tx_port_get_name(lb_priv->select_tx_port_func);
310 name = lb_select_tx_port_get_name(func);
311 BUG_ON(!name); 309 BUG_ON(!name);
312 ctx->data.str_val = name; 310 ctx->data.str_val = name;
313 return 0; 311 return 0;