aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/join.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-05-25 16:46:33 -0400
committerJohn W. Linville <linville@tuxdriver.com>2007-06-11 14:28:42 -0400
commitef9a264b7a288a07c43ddb244c4f9ab0e8df90e4 (patch)
tree67dad09f719d1e91cb168143db2215b9a84dd942 /drivers/net/wireless/libertas/join.c
parentd43fb8ee3dab261e475d4f5189cf86182139b7f4 (diff)
[PATCH] libertas: move channel changing into association framework
Handle channel changes through the deferred association framework rather than directly. Fixes errors when setting channels along with other parameters like mode and SSID. Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/join.c')
-rw-r--r--drivers/net/wireless/libertas/join.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/net/wireless/libertas/join.c b/drivers/net/wireless/libertas/join.c
index c9111b877067..a11ce3a6f611 100644
--- a/drivers/net/wireless/libertas/join.c
+++ b/drivers/net/wireless/libertas/join.c
@@ -158,7 +158,6 @@ int libertas_start_adhoc_network(wlan_private * priv, struct WLAN_802_11_SSID *a
158 158
159 libertas_set_radio_control(priv); 159 libertas_set_radio_control(priv);
160 160
161 lbs_deb_join("Adhoc channel = %d\n", adapter->adhocchannel);
162 lbs_deb_join("curbssparams.channel = %d\n", 161 lbs_deb_join("curbssparams.channel = %d\n",
163 adapter->curbssparams.channel); 162 adapter->curbssparams.channel);
164 lbs_deb_join("curbssparams.band = %d\n", adapter->curbssparams.band); 163 lbs_deb_join("curbssparams.band = %d\n", adapter->curbssparams.band);
@@ -513,15 +512,13 @@ int libertas_cmd_80211_ad_hoc_start(wlan_private * priv,
513 adhs->phyparamset.dsparamset.elementid = DS_PARA_IE_ID; 512 adhs->phyparamset.dsparamset.elementid = DS_PARA_IE_ID;
514 adhs->phyparamset.dsparamset.len = DS_PARA_IE_LEN; 513 adhs->phyparamset.dsparamset.len = DS_PARA_IE_LEN;
515 514
516 WARN_ON(!adapter->adhocchannel); 515 WARN_ON(!adapter->curbssparams.channel);
517 516
518 lbs_deb_join("ADHOC_S_CMD: Creating ADHOC on channel %d\n", 517 lbs_deb_join("ADHOC_S_CMD: Creating ADHOC on channel %d\n",
519 adapter->adhocchannel); 518 adapter->curbssparams.channel);
520
521 adapter->curbssparams.channel = adapter->adhocchannel;
522 519
523 pbssdesc->channel = adapter->adhocchannel; 520 pbssdesc->channel = adapter->curbssparams.channel;
524 adhs->phyparamset.dsparamset.currentchan = adapter->adhocchannel; 521 adhs->phyparamset.dsparamset.currentchan = adapter->curbssparams.channel;
525 522
526 memcpy(&pbssdesc->phyparamset, 523 memcpy(&pbssdesc->phyparamset,
527 &adhs->phyparamset, sizeof(union ieeetypes_phyparamset)); 524 &adhs->phyparamset, sizeof(union ieeetypes_phyparamset));
@@ -909,7 +906,7 @@ int libertas_ret_80211_ad_hoc_start(wlan_private * priv,
909 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL); 906 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);
910 907
911 lbs_deb_join("ADHOC_RESP: - Joined/Started Ad Hoc\n"); 908 lbs_deb_join("ADHOC_RESP: - Joined/Started Ad Hoc\n");
912 lbs_deb_join("ADHOC_RESP: channel = %d\n", adapter->adhocchannel); 909 lbs_deb_join("ADHOC_RESP: channel = %d\n", adapter->curbssparams.channel);
913 lbs_deb_join("ADHOC_RESP: BSSID = %02x:%02x:%02x:%02x:%02x:%02x\n", 910 lbs_deb_join("ADHOC_RESP: BSSID = %02x:%02x:%02x:%02x:%02x:%02x\n",
914 padhocresult->BSSID[0], padhocresult->BSSID[1], 911 padhocresult->BSSID[0], padhocresult->BSSID[1],
915 padhocresult->BSSID[2], padhocresult->BSSID[3], 912 padhocresult->BSSID[2], padhocresult->BSSID[3],