diff options
Diffstat (limited to 'net/mac80211/ibss.c')
-rw-r--r-- | net/mac80211/ibss.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index b2cc1fda6cfd..d7a96ced2c83 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c | |||
@@ -798,6 +798,15 @@ static void ieee80211_ibss_work(struct work_struct *work) | |||
798 | } | 798 | } |
799 | } | 799 | } |
800 | 800 | ||
801 | static void ieee80211_queue_ibss_work(struct ieee80211_sub_if_data *sdata) | ||
802 | { | ||
803 | struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; | ||
804 | struct ieee80211_local *local = sdata->local; | ||
805 | |||
806 | set_bit(IEEE80211_IBSS_REQ_RUN, &ifibss->request); | ||
807 | ieee80211_queue_work(&local->hw, &ifibss->work); | ||
808 | } | ||
809 | |||
801 | static void ieee80211_ibss_timer(unsigned long data) | 810 | static void ieee80211_ibss_timer(unsigned long data) |
802 | { | 811 | { |
803 | struct ieee80211_sub_if_data *sdata = | 812 | struct ieee80211_sub_if_data *sdata = |
@@ -810,8 +819,7 @@ static void ieee80211_ibss_timer(unsigned long data) | |||
810 | return; | 819 | return; |
811 | } | 820 | } |
812 | 821 | ||
813 | set_bit(IEEE80211_IBSS_REQ_RUN, &ifibss->request); | 822 | ieee80211_queue_ibss_work(sdata); |
814 | ieee80211_queue_work(&local->hw, &ifibss->work); | ||
815 | } | 823 | } |
816 | 824 | ||
817 | #ifdef CONFIG_PM | 825 | #ifdef CONFIG_PM |
@@ -859,7 +867,7 @@ void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local) | |||
859 | if (!sdata->u.ibss.ssid_len) | 867 | if (!sdata->u.ibss.ssid_len) |
860 | continue; | 868 | continue; |
861 | sdata->u.ibss.last_scan_completed = jiffies; | 869 | sdata->u.ibss.last_scan_completed = jiffies; |
862 | mod_timer(&sdata->u.ibss.timer, 0); | 870 | ieee80211_queue_ibss_work(sdata); |
863 | } | 871 | } |
864 | mutex_unlock(&local->iflist_mtx); | 872 | mutex_unlock(&local->iflist_mtx); |
865 | } | 873 | } |