All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mac80211: trigger ieee80211_sta_work after opening interface
@ 2008-03-23 19:23 Jan Niehusmann
  2008-03-23 22:16 ` Johannes Berg
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Niehusmann @ 2008-03-23 19:23 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, Michael Wu, Johannes Berg, Jiri Benc

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>
---
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c
index 28bcdf9..8e58639 100644
--- a/net/mac80211/ieee80211.c
+++ b/net/mac80211/ieee80211.c
@@ -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;

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-03-24 14:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-23 19:23 [PATCH] mac80211: trigger ieee80211_sta_work after opening interface Jan Niehusmann
2008-03-23 22:16 ` Johannes Berg
2008-03-23 22:28   ` Tomas Winkler
2008-03-24  0:10     ` Jan Niehusmann
2008-03-24 14:32     ` Dan Williams
2008-03-24 14:56       ` Tomas Winkler
2008-03-23 23:57   ` Jan Niehusmann
2008-03-24 10:21     ` Johannes Berg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.