mac80211: update mesh beacon on workqueue
authorThomas Pedersen <thomas@cozybit.com>
Thu, 13 Jun 2013 22:54:41 +0000 (15:54 -0700)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 18 Jun 2013 13:57:27 +0000 (15:57 +0200)
commitf81a9dedaff434604c7fc3d9c299d277b76db0a8
tree0e11854521a0f93738bd451455046cbc0b986381
parenta1193be83b4bb173228f04870afd6a4174b19130
mac80211: update mesh beacon on workqueue

Instead of updating the mesh beacon immediately when
requested (which would require the sdata_lock()), defer it
to the mac80211 workqueue.

Fixes yet another deadlock on calling sta_info_flush()
with the sdata_lock() held from ieee80211_stop_mesh(). We
could just drop the sdata_lock() around the
mesh_sta_cleanup() call, but this path is also taken from
several non-locked error paths.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
[fix comment position]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ieee80211_i.h
net/mac80211/mesh.c
net/mac80211/mesh.h