diff options
Diffstat (limited to 'net/mac80211/mesh_pathtbl.c')
-rw-r--r-- | net/mac80211/mesh_pathtbl.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c index cf032a8db9d7..a6699dceae7c 100644 --- a/net/mac80211/mesh_pathtbl.c +++ b/net/mac80211/mesh_pathtbl.c | |||
@@ -729,7 +729,7 @@ void mesh_plink_broken(struct sta_info *sta) | |||
729 | tbl = rcu_dereference(mesh_paths); | 729 | tbl = rcu_dereference(mesh_paths); |
730 | for_each_mesh_entry(tbl, node, i) { | 730 | for_each_mesh_entry(tbl, node, i) { |
731 | mpath = node->mpath; | 731 | mpath = node->mpath; |
732 | if (rcu_dereference(mpath->next_hop) == sta && | 732 | if (rcu_access_pointer(mpath->next_hop) == sta && |
733 | mpath->flags & MESH_PATH_ACTIVE && | 733 | mpath->flags & MESH_PATH_ACTIVE && |
734 | !(mpath->flags & MESH_PATH_FIXED)) { | 734 | !(mpath->flags & MESH_PATH_FIXED)) { |
735 | spin_lock_bh(&mpath->state_lock); | 735 | spin_lock_bh(&mpath->state_lock); |
@@ -794,7 +794,7 @@ void mesh_path_flush_by_nexthop(struct sta_info *sta) | |||
794 | tbl = resize_dereference_mesh_paths(); | 794 | tbl = resize_dereference_mesh_paths(); |
795 | for_each_mesh_entry(tbl, node, i) { | 795 | for_each_mesh_entry(tbl, node, i) { |
796 | mpath = node->mpath; | 796 | mpath = node->mpath; |
797 | if (rcu_dereference(mpath->next_hop) == sta) { | 797 | if (rcu_access_pointer(mpath->next_hop) == sta) { |
798 | spin_lock(&tbl->hashwlock[i]); | 798 | spin_lock(&tbl->hashwlock[i]); |
799 | __mesh_path_del(tbl, node); | 799 | __mesh_path_del(tbl, node); |
800 | spin_unlock(&tbl->hashwlock[i]); | 800 | spin_unlock(&tbl->hashwlock[i]); |