2010-01-12 22:21:43

by Abhijeet Kolekar

[permalink] [raw]
Subject: [PATCH] mac80211: fix channel setting for wext

Patch fixes the bug at
http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2139

Currently we cannot set the channel using wext extension
if we have already associated and disconnected. As
cfg80211_mgd_wext_siwfreq will not switch the channel if ssid is set.
This fixes it by clearing the ssid.
Following is the sequence which it tries to fix.
modprobe iwlagn
iwconfig wlan0 essid ""
ifconfig wlan0 down
iwconfig wlan0 chan X

wext is marked as deprecate.If we use nl80211 we can easily play with
setting the channel.

Signed-off-by: Abhijeet Kolekar <[email protected]>
Acked-by: Samuel Ortiz <[email protected]>
---
v2: Added Samuel's Comments

net/wireless/sme.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index 2333d78..dc0fc49 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -655,6 +655,7 @@ void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
memset(&wrqu, 0, sizeof(wrqu));
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
+ wdev->wext.connect.ssid_len = 0;
#endif
}

--
1.6.3.3



2010-01-13 08:40:11

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix channel setting for wext

Abhijeet Kolekar <[email protected]> writes:

> Patch fixes the bug at
> http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2139
>
> Currently we cannot set the channel using wext extension
> if we have already associated and disconnected. As
> cfg80211_mgd_wext_siwfreq will not switch the channel if ssid is set.
> This fixes it by clearing the ssid.

[...]

> net/wireless/sme.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)

This patch is not for mac80211, but cfg80211. So please use
"cfg80211:" prefix in the title.

--
Kalle Valo