aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/iface.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-06-10 04:21:31 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-14 15:38:17 -0400
commit64592c8fc0e99d445fc3fdedddeb6088e20086f1 (patch)
tree2493358821abc4050b25f8a0bd813b763b188d38 /net/mac80211/iface.c
parent35f20c14a103ca2c7062999e934a513b83d84de6 (diff)
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 56167a3d872d..de7ddc303a5f 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -460,17 +460,14 @@ static int ieee80211_stop(struct net_device *dev)
460 * whether the interface is running, which, at this point, 460 * whether the interface is running, which, at this point,
461 * it no longer is. 461 * it no longer is.
462 */ 462 */
463 cancel_work_sync(&sdata->u.mgd.work);
464 cancel_work_sync(&sdata->u.mgd.chswitch_work); 463 cancel_work_sync(&sdata->u.mgd.chswitch_work);
465 cancel_work_sync(&sdata->u.mgd.monitor_work); 464 cancel_work_sync(&sdata->u.mgd.monitor_work);
466 cancel_work_sync(&sdata->u.mgd.beacon_connection_loss_work); 465 cancel_work_sync(&sdata->u.mgd.beacon_connection_loss_work);
467 466
468 /* fall through */ 467 /* fall through */
469 case NL80211_IFTYPE_ADHOC: 468 case NL80211_IFTYPE_ADHOC:
470 if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { 469 if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
471 del_timer_sync(&sdata->u.ibss.timer); 470 del_timer_sync(&sdata->u.ibss.timer);
472 cancel_work_sync(&sdata->u.ibss.work);
473 }
474 /* fall through */ 471 /* fall through */
475 case NL80211_IFTYPE_MESH_POINT: 472 case NL80211_IFTYPE_MESH_POINT:
476 if (ieee80211_vif_is_mesh(&sdata->vif)) { 473 if (ieee80211_vif_is_mesh(&sdata->vif)) {
@@ -485,6 +482,7 @@ static int ieee80211_stop(struct net_device *dev)
485 } 482 }
486 /* fall through */ 483 /* fall through */
487 default: 484 default:
485 cancel_work_sync(&sdata->work);
488 /* 486 /*
489 * When we get here, the interface is marked down. 487 * When we get here, the interface is marked down.
490 * Call synchronize_rcu() to wait for the RX path 488 * Call synchronize_rcu() to wait for the RX path