mwifiex: return success in set_default_key for WPA/WPA2
authorAmitkumar Karwar <akarwar@marvell.com>
Sat, 2 Apr 2011 01:36:46 +0000 (18:36 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 7 Apr 2011 19:34:12 +0000 (15:34 -0400)
When testing wpa_supplicant with 'nl80211' driver to connect
to an AP with WPA/WPA2 security, we notice the followings:

1) add_key is called firstly with the key from cfg80211
2) set_defaut_key is called next

set_default_key() is specific to WEP keys and should not be
called in case of WPA/WPA2 security. The set_default_key()
won't be called if wpa_supplicant uses "-Dwext" option,
but it's been called if "-Dnl80211" option is specified.

We can fix this issue by adding a check to return from
set_default_key() if WEP key is not configured.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Marc Yang <yangyang@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/cfg80211.c

index 2d9680044c12f2497195ea5fc420b3de18e59cdd..4ac4f5a0ce61e2123159b314ae7550b6378a6614 100644 (file)
@@ -228,6 +228,10 @@ mwifiex_cfg80211_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
        struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
        int ret;
 
+       /* Return if WEP key not configured */
+       if (priv->sec_info.wep_status == MWIFIEX_802_11_WEP_DISABLED)
+               return 0;
+
        ret = mwifiex_set_encode(priv, NULL, 0, key_index, 0);
 
        wiphy_dbg(wiphy, "info: set default Tx key index\n");