Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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;