diff options
Diffstat (limited to 'net/mac80211/ieee80211.c')
-rw-r--r-- | net/mac80211/ieee80211.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c index 5ee431b6256c..aaa5480e204a 100644 --- a/net/mac80211/ieee80211.c +++ b/net/mac80211/ieee80211.c | |||
@@ -375,6 +375,18 @@ static int ieee80211_open(struct net_device *dev) | |||
375 | if (need_hw_reconfig) | 375 | if (need_hw_reconfig) |
376 | ieee80211_hw_config(local); | 376 | ieee80211_hw_config(local); |
377 | 377 | ||
378 | /* | ||
379 | * ieee80211_sta_work is disabled while network interface | ||
380 | * is down. Therefore, some configuration changes may not | ||
381 | * yet be effective. Trigger execution of ieee80211_sta_work | ||
382 | * to fix this. | ||
383 | */ | ||
384 | if(sdata->vif.type == IEEE80211_IF_TYPE_STA || | ||
385 | sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { | ||
386 | struct ieee80211_if_sta *ifsta = &sdata->u.sta; | ||
387 | queue_work(local->hw.workqueue, &ifsta->work); | ||
388 | } | ||
389 | |||
378 | netif_start_queue(dev); | 390 | netif_start_queue(dev); |
379 | 391 | ||
380 | return 0; | 392 | return 0; |