diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-05-07 11:44:20 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-05-21 21:47:42 -0400 |
commit | 5194ee82b4aafc35b32c96db11bdacea9bf548be (patch) | |
tree | f8d774ace25060590bf73763ba62be46822f65e0 /net/mac80211/mesh_pathtbl.c | |
parent | 402d7752ed253369b7ab037e2d778e52d59c19ed (diff) |
mac80211: Fix one more call to synchronize_rcu in atomic context.
(This set applies OK without the previous one of 4 patches,
but with some fuzz in the 7th one)
The mesh_path_node_free() does so under hashwlock.
But, this one is called
1. from mesh_path_add() after an old hash is hidden and
synchronize_rcu() is calld
2. mesh_pathtbl_unregister(), when the module is being
unloaded and no devices exist to mess with this hash.
So, it seems to me, that simply removing the call is OK.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mesh_pathtbl.c')
-rw-r--r-- | net/mac80211/mesh_pathtbl.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c index 7097ef981991..0b6c4bfe3e78 100644 --- a/net/mac80211/mesh_pathtbl.c +++ b/net/mac80211/mesh_pathtbl.c | |||
@@ -458,7 +458,6 @@ static void mesh_path_node_free(struct hlist_node *p, bool free_leafs) | |||
458 | struct mpath_node *node = hlist_entry(p, struct mpath_node, list); | 458 | struct mpath_node *node = hlist_entry(p, struct mpath_node, list); |
459 | mpath = node->mpath; | 459 | mpath = node->mpath; |
460 | hlist_del_rcu(p); | 460 | hlist_del_rcu(p); |
461 | synchronize_rcu(); | ||
462 | if (free_leafs) | 461 | if (free_leafs) |
463 | kfree(mpath); | 462 | kfree(mpath); |
464 | kfree(node); | 463 | kfree(node); |