aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh_pathtbl.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mesh_pathtbl.c')
-rw-r--r--net/mac80211/mesh_pathtbl.c27
1 files changed, 5 insertions, 22 deletions
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c
index 4fc23d1b9c3..7bd2a76aef0 100644
--- a/net/mac80211/mesh_pathtbl.c
+++ b/net/mac80211/mesh_pathtbl.c
@@ -69,8 +69,6 @@ static inline struct mesh_table *resize_dereference_mpp_paths(void)
69 lockdep_is_held(&pathtbl_resize_lock)); 69 lockdep_is_held(&pathtbl_resize_lock));
70} 70}
71 71
72static int mesh_gate_add(struct mesh_table *tbl, struct mesh_path *mpath);
73
74/* 72/*
75 * CAREFUL -- "tbl" must not be an expression, 73 * CAREFUL -- "tbl" must not be an expression,
76 * in particular not an rcu_dereference(), since 74 * in particular not an rcu_dereference(), since
@@ -420,21 +418,18 @@ static void mesh_gate_node_reclaim(struct rcu_head *rp)
420} 418}
421 419
422/** 420/**
423 * mesh_gate_add - mark mpath as path to a mesh gate and add to known_gates 421 * mesh_path_add_gate - add the given mpath to a mesh gate to our path table
424 * @mesh_tbl: table which contains known_gates list 422 * @mpath: gate path to add to table
425 * @mpath: mpath to known mesh gate
426 *
427 * Returns: 0 on success
428 *
429 */ 423 */
430static int mesh_gate_add(struct mesh_table *tbl, struct mesh_path *mpath) 424int mesh_path_add_gate(struct mesh_path *mpath)
431{ 425{
426 struct mesh_table *tbl;
432 struct mpath_node *gate, *new_gate; 427 struct mpath_node *gate, *new_gate;
433 struct hlist_node *n; 428 struct hlist_node *n;
434 int err; 429 int err;
435 430
436 rcu_read_lock(); 431 rcu_read_lock();
437 tbl = rcu_dereference(tbl); 432 tbl = rcu_dereference(mesh_paths);
438 433
439 hlist_for_each_entry_rcu(gate, n, tbl->known_gates, list) 434 hlist_for_each_entry_rcu(gate, n, tbl->known_gates, list)
440 if (gate->mpath == mpath) { 435 if (gate->mpath == mpath) {
@@ -478,8 +473,6 @@ static int mesh_gate_del(struct mesh_table *tbl, struct mesh_path *mpath)
478 struct mpath_node *gate; 473 struct mpath_node *gate;
479 struct hlist_node *p, *q; 474 struct hlist_node *p, *q;
480 475
481 tbl = rcu_dereference(tbl);
482
483 hlist_for_each_entry_safe(gate, p, q, tbl->known_gates, list) 476 hlist_for_each_entry_safe(gate, p, q, tbl->known_gates, list)
484 if (gate->mpath == mpath) { 477 if (gate->mpath == mpath) {
485 spin_lock_bh(&tbl->gates_lock); 478 spin_lock_bh(&tbl->gates_lock);
@@ -498,16 +491,6 @@ static int mesh_gate_del(struct mesh_table *tbl, struct mesh_path *mpath)
498} 491}
499 492
500/** 493/**
501 *
502 * mesh_path_add_gate - add the given mpath to a mesh gate to our path table
503 * @mpath: gate path to add to table
504 */
505int mesh_path_add_gate(struct mesh_path *mpath)
506{
507 return mesh_gate_add(mesh_paths, mpath);
508}
509
510/**
511 * mesh_gate_num - number of gates known to this interface 494 * mesh_gate_num - number of gates known to this interface
512 * @sdata: subif data 495 * @sdata: subif data
513 */ 496 */