aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/iface.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-06-10 10:21:31 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-06-14 15:38:17 -0400
commit64592c8fc0e99d445fc3fdedddeb6088e20086f1 (patch)
tree2493358821abc4050b25f8a0bd813b763b188d38 /net/mac80211/iface.c
parent35f20c14a103ca2c7062999e934a513b83d84de6 (diff)
downloadkernel_samsung_smdk4412-64592c8fc0e99d445fc3fdedddeb6088e20086f1.zip
kernel_samsung_smdk4412-64592c8fc0e99d445fc3fdedddeb6088e20086f1.tar.gz
kernel_samsung_smdk4412-64592c8fc0e99d445fc3fdedddeb6088e20086f1.tar.bz2
mac80211: use common work struct
IBSS, managed and mesh modes all have their own work struct, and in the future we want to also use it in other modes to process frames from the now common skb queue. This also makes the skb queue and work safe to use from other interface types. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/iface.c')
-rw-r--r--net/mac80211/iface.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 56167a3..de7ddc3 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -460,17 +460,14 @@ static int ieee80211_stop(struct net_device *dev)
* whether the interface is running, which, at this point,
* it no longer is.
*/
- cancel_work_sync(&sdata->u.mgd.work);
cancel_work_sync(&sdata->u.mgd.chswitch_work);
cancel_work_sync(&sdata->u.mgd.monitor_work);
cancel_work_sync(&sdata->u.mgd.beacon_connection_loss_work);
/* fall through */
case NL80211_IFTYPE_ADHOC:
- if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
+ if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
del_timer_sync(&sdata->u.ibss.timer);
- cancel_work_sync(&sdata->u.ibss.work);
- }
/* fall through */
case NL80211_IFTYPE_MESH_POINT:
if (ieee80211_vif_is_mesh(&sdata->vif)) {
@@ -485,6 +482,7 @@ static int ieee80211_stop(struct net_device *dev)
}
/* fall through */
default:
+ cancel_work_sync(&sdata->work);
/*
* When we get here, the interface is marked down.
* Call synchronize_rcu() to wait for the RX path