Commit 64f851e4 authored by Jan Niehusmann's avatar Jan Niehusmann Committed by John W. Linville

mac80211: trigger ieee80211_sta_work after opening interface

ieee80211_sta_work is disabled while network interface
is down. Therefore, if you configure wireless parameters
before bringing the interface up, these configurations are
not yet effective and association fails.

A workaround from userspace is calling a command like
'iwconfig wlan0 ap any' after the interface is brought up.

To fix this behaviour, trigger execution of ieee80211_sta_work from
ieee80211_open when in STA or IBSS mode.
Signed-off-by: default avatarJan Niehusmann <jan@gondor.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent f83f1768
...@@ -286,6 +286,18 @@ static int ieee80211_open(struct net_device *dev) ...@@ -286,6 +286,18 @@ static int ieee80211_open(struct net_device *dev)
if (need_hw_reconfig) if (need_hw_reconfig)
ieee80211_hw_config(local); ieee80211_hw_config(local);
/*
* ieee80211_sta_work is disabled while network interface
* is down. Therefore, some configuration changes may not
* yet be effective. Trigger execution of ieee80211_sta_work
* to fix this.
*/
if(sdata->vif.type == IEEE80211_IF_TYPE_STA ||
sdata->vif.type == IEEE80211_IF_TYPE_IBSS) {
struct ieee80211_if_sta *ifsta = &sdata->u.sta;
queue_work(local->hw.workqueue, &ifsta->work);
}
netif_start_queue(dev); netif_start_queue(dev);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment