summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ipw2200.c
diff options
context:
space:
mode:
authorHong Liu2005-08-05 11:25:50 +0200
committerJames Ketrenos2005-11-08 00:50:42 +0100
commitcaeff81b4e6479884f3cd2ced526bebd4f0c5eff (patch)
treef5b3a452d519d904acd16f30ef4a5c973635ecbd /drivers/net/wireless/ipw2200.c
parent[Bug 792] Fix WPA-PSK AES both for -Dipw and -Dwext. (diff)
downloadkernel-qcow2-linux-caeff81b4e6479884f3cd2ced526bebd4f0c5eff.tar.gz
kernel-qcow2-linux-caeff81b4e6479884f3cd2ced526bebd4f0c5eff.tar.xz
kernel-qcow2-linux-caeff81b4e6479884f3cd2ced526bebd4f0c5eff.zip
Fixes the ad-hoc network WEP key list issue.
If we configure the wep keys after creating the ibss network, the beacons of this network will not show correctly (it still shows "key off" in iwlist scan report). This is because we don't update the beacon info in firmware. Signed-off-by: Hong Liu <hong.liu@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Diffstat (limited to 'drivers/net/wireless/ipw2200.c')
-rw-r--r--drivers/net/wireless/ipw2200.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index c6da5f534250..626e78a336eb 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -9169,11 +9169,19 @@ static int ipw_wx_set_encode(struct net_device *dev,
{
struct ipw_priv *priv = ieee80211_priv(dev);
int ret;
+ u32 cap = priv->capability;
down(&priv->sem);
ret = ieee80211_wx_set_encode(priv->ieee, info, wrqu, key);
- up(&priv->sem);
+ /* In IBSS mode, we need to notify the firmware to update
+ * the beacon info after we changed the capability. */
+ if (cap != priv->capability &&
+ priv->ieee->iw_mode == IW_MODE_ADHOC &&
+ priv->status & STATUS_ASSOCIATED)
+ ipw_disassociate(priv);
+
+ up(&priv->sem);
return ret;
}