]> err.no Git - linux-2.6/commitdiff
Fixes the ad-hoc network WEP key list issue.
authorHong Liu <hong.liu@intel.com>
Fri, 5 Aug 2005 09:25:50 +0000 (17:25 +0800)
committerJames Ketrenos <jketreno@linux.intel.com>
Mon, 7 Nov 2005 23:50:42 +0000 (17:50 -0600)
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>
drivers/net/wireless/ipw2200.c

index c6da5f534250805c3137c5a5c96e4c53d9ff4338..626e78a336eb65a701e5b5d36410adaf926d43e3 100644 (file)
@@ -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;
 }