aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mesh.c')
-rw-r--r--net/mac80211/mesh.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index be9aa980e941..0f1f593c8477 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -596,8 +596,8 @@ static void ieee80211_mesh_rx_mgmt_action(struct ieee80211_sub_if_data *sdata,
596 } 596 }
597} 597}
598 598
599static void ieee80211_mesh_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, 599void ieee80211_mesh_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
600 struct sk_buff *skb) 600 struct sk_buff *skb)
601{ 601{
602 struct ieee80211_rx_status *rx_status; 602 struct ieee80211_rx_status *rx_status;
603 struct ieee80211_if_mesh *ifmsh; 603 struct ieee80211_if_mesh *ifmsh;
@@ -624,22 +624,9 @@ static void ieee80211_mesh_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
624 kfree_skb(skb); 624 kfree_skb(skb);
625} 625}
626 626
627static void ieee80211_mesh_work(struct work_struct *work) 627void ieee80211_mesh_work(struct ieee80211_sub_if_data *sdata)
628{ 628{
629 struct ieee80211_sub_if_data *sdata =
630 container_of(work, struct ieee80211_sub_if_data, work);
631 struct ieee80211_local *local = sdata->local;
632 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; 629 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
633 struct sk_buff *skb;
634
635 if (!ieee80211_sdata_running(sdata))
636 return;
637
638 if (local->scanning)
639 return;
640
641 while ((skb = skb_dequeue(&sdata->skb_queue)))
642 ieee80211_mesh_rx_queued_mgmt(sdata, skb);
643 630
644 if (ifmsh->preq_queue_len && 631 if (ifmsh->preq_queue_len &&
645 time_after(jiffies, 632 time_after(jiffies,
@@ -674,7 +661,6 @@ void ieee80211_mesh_init_sdata(struct ieee80211_sub_if_data *sdata)
674{ 661{
675 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; 662 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
676 663
677 INIT_WORK(&sdata->work, ieee80211_mesh_work);
678 setup_timer(&ifmsh->housekeeping_timer, 664 setup_timer(&ifmsh->housekeeping_timer,
679 ieee80211_mesh_housekeeping_timer, 665 ieee80211_mesh_housekeeping_timer,
680 (unsigned long) sdata); 666 (unsigned long) sdata);