339a52d51d2cdab6bb0444acc26b561db5edb5ef
[openwrt-10.03/.git] / package / mac80211 / patches / 530-mac80211_work_fix.patch
1 --- a/net/mac80211/scan.c
2 +++ b/net/mac80211/scan.c
3 @@ -284,6 +284,7 @@ void ieee80211_scan_completed(struct iee
4         ieee80211_mlme_notify_scan_completed(local);
5         ieee80211_ibss_notify_scan_completed(local);
6         ieee80211_mesh_notify_scan_completed(local);
7 +       ieee80211_queue_work(&local->hw, &local->work_work);
8  }
9  EXPORT_SYMBOL(ieee80211_scan_completed);
10  
11 --- a/net/mac80211/work.c
12 +++ b/net/mac80211/work.c
13 @@ -818,6 +818,7 @@ static void ieee80211_work_work(struct w
14                     wk->chan == local->tmp_channel &&
15                     wk->chan_type == local->tmp_channel_type) {
16                         wk->started = true;
17 +                       wk->timeout = jiffies;
18                 }
19  
20                 if (!wk->started && !local->tmp_channel) {
21 @@ -935,6 +936,9 @@ void ieee80211_add_work(struct ieee80211
22         if (WARN_ON(!wk->done))
23                 return;
24  
25 +       if (WARN_ON(!ieee80211_sdata_running(wk->sdata)))
26 +               return;
27 +
28         wk->started = false;
29  
30         local = wk->sdata->local;