Skip to content

Commit

Permalink
mac80211: trigger ieee80211_sta_work after opening interface
Browse files Browse the repository at this point in the history
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: Jan Niehusmann <jan@gondor.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Jan Niehusmann authored and John W. Linville committed Apr 1, 2008
1 parent f83f176 commit 64f851e
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions net/mac80211/ieee80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,18 @@ static int ieee80211_open(struct net_device *dev)
if (need_hw_reconfig)
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);

return 0;
Expand Down

0 comments on commit 64f851e

Please sign in to comment.