From: Pavel Emelyanov Date: Wed, 7 May 2008 15:44:20 +0000 (+0400) Subject: mac80211: Fix one more call to synchronize_rcu in atomic context. X-Git-Tag: v2.6.27-rc1~969^2~337^2~123 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=5194ee82b4aafc35b32c96db11bdacea9bf548be;p=linux-2.6-omap-h63xx.git 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 Signed-off-by: John W. Linville --- diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c index 7097ef98199..0b6c4bfe3e7 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) struct mpath_node *node = hlist_entry(p, struct mpath_node, list); mpath = node->mpath; hlist_del_rcu(p); - synchronize_rcu(); if (free_leafs) kfree(mpath); kfree(node);