mwifiex: use common keyinfo bitmap for different key types
authorYogesh Ashok Powar <yogeshp@marvell.com>
Wed, 6 Apr 2011 23:46:56 +0000 (16:46 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 12 Apr 2011 20:57:35 +0000 (16:57 -0400)
Instead of having separate key information definitions for
each type of key, a common key information bitmap is used.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/fw.h
drivers/net/wireless/mwifiex/sta_cmd.c
drivers/net/wireless/mwifiex/sta_cmdresp.c
drivers/net/wireless/mwifiex/sta_ioctl.c

index 2b938115b26a72fdcadfa0e2d64b48b1acde9137..f8c008f8f4761d4af274e6f8fd4e0d17cdc2e229 100644 (file)
@@ -72,33 +72,12 @@ enum KEY_TYPE_ID {
        KEY_TYPE_ID_AES,
        KEY_TYPE_ID_WAPI,
 };
-
-enum KEY_INFO_WEP {
-       KEY_INFO_WEP_MCAST = 0x01,
-       KEY_INFO_WEP_UNICAST = 0x02,
-       KEY_INFO_WEP_ENABLED = 0x04
-};
-
-enum KEY_INFO_TKIP {
-       KEY_INFO_TKIP_MCAST = 0x01,
-       KEY_INFO_TKIP_UNICAST = 0x02,
-       KEY_INFO_TKIP_ENABLED = 0x04
-};
-
-enum KEY_INFO_AES {
-       KEY_INFO_AES_MCAST = 0x01,
-       KEY_INFO_AES_UNICAST = 0x02,
-       KEY_INFO_AES_ENABLED = 0x04
-};
+#define KEY_MCAST      BIT(0)
+#define KEY_UNICAST    BIT(1)
+#define KEY_ENABLED    BIT(2)
 
 #define WAPI_KEY_LEN                   50
 
-enum KEY_INFO_WAPI {
-       KEY_INFO_WAPI_MCAST = 0x01,
-       KEY_INFO_WAPI_UNICAST = 0x02,
-       KEY_INFO_WAPI_ENABLED = 0x04
-};
-
 #define MAX_POLL_TRIES                 100
 
 #define MAX_MULTI_INTERFACE_POLL_TRIES  1000
index 6fff26153e26e49694d5c678f44990d358e8e83d..19de6524d428f0e0a391cd2a3e207fcd55eba04f 100644 (file)
@@ -500,9 +500,8 @@ mwifiex_set_keyparamset_wep(struct mwifiex_private *priv,
                        key_param_set->key_type_id =
                                cpu_to_le16(KEY_TYPE_ID_WEP);
                        key_param_set->key_info =
-                               cpu_to_le16(KEY_INFO_WEP_ENABLED |
-                                           KEY_INFO_WEP_UNICAST |
-                                           KEY_INFO_WEP_MCAST);
+                               cpu_to_le16(KEY_ENABLED | KEY_UNICAST |
+                                           KEY_MCAST);
                        key_param_set->key_len =
                                cpu_to_le16(priv->wep_key[i].key_length);
                        /* Set WEP key index */
@@ -589,10 +588,10 @@ static int mwifiex_cmd_802_11_key_material(struct mwifiex_private *priv,
                        cpu_to_le16(KEY_TYPE_ID_WAPI);
                if (cmd_oid == KEY_INFO_ENABLED)
                        key_material->key_param_set.key_info =
-                               cpu_to_le16(KEY_INFO_WAPI_ENABLED);
+                               cpu_to_le16(KEY_ENABLED);
                else
                        key_material->key_param_set.key_info =
-                               cpu_to_le16(!KEY_INFO_WAPI_ENABLED);
+                               cpu_to_le16(!KEY_ENABLED);
 
                key_material->key_param_set.key[0] = enc_key->key_index;
                if (!priv->sec_info.wapi_key_on)
@@ -604,10 +603,10 @@ static int mwifiex_cmd_802_11_key_material(struct mwifiex_private *priv,
                if (0 != memcmp(enc_key->mac_addr, bc_mac, sizeof(bc_mac))) {
                        /* WAPI pairwise key: unicast */
                        key_material->key_param_set.key_info |=
-                               cpu_to_le16(KEY_INFO_WAPI_UNICAST);
+                               cpu_to_le16(KEY_UNICAST);
                } else {        /* WAPI group key: multicast */
                        key_material->key_param_set.key_info |=
-                               cpu_to_le16(KEY_INFO_WAPI_MCAST);
+                               cpu_to_le16(KEY_MCAST);
                        priv->sec_info.wapi_key_on = true;
                }
 
@@ -634,32 +633,32 @@ static int mwifiex_cmd_802_11_key_material(struct mwifiex_private *priv,
                        cpu_to_le16(KEY_TYPE_ID_AES);
                if (cmd_oid == KEY_INFO_ENABLED)
                        key_material->key_param_set.key_info =
-                               cpu_to_le16(KEY_INFO_AES_ENABLED);
+                               cpu_to_le16(KEY_ENABLED);
                else
                        key_material->key_param_set.key_info =
-                               cpu_to_le16(!KEY_INFO_AES_ENABLED);
+                               cpu_to_le16(!KEY_ENABLED);
 
                if (enc_key->key_index & MWIFIEX_KEY_INDEX_UNICAST)
                                /* AES pairwise key: unicast */
                        key_material->key_param_set.key_info |=
-                               cpu_to_le16(KEY_INFO_AES_UNICAST);
+                               cpu_to_le16(KEY_UNICAST);
                else            /* AES group key: multicast */
                        key_material->key_param_set.key_info |=
-                               cpu_to_le16(KEY_INFO_AES_MCAST);
+                               cpu_to_le16(KEY_MCAST);
        } else if (enc_key->key_len == WLAN_KEY_LEN_TKIP) {
                dev_dbg(priv->adapter->dev, "cmd: WPA_TKIP\n");
                key_material->key_param_set.key_type_id =
                        cpu_to_le16(KEY_TYPE_ID_TKIP);
                key_material->key_param_set.key_info =
-                       cpu_to_le16(KEY_INFO_TKIP_ENABLED);
+                       cpu_to_le16(KEY_ENABLED);
 
                if (enc_key->key_index & MWIFIEX_KEY_INDEX_UNICAST)
                                /* TKIP pairwise key: unicast */
                        key_material->key_param_set.key_info |=
-                               cpu_to_le16(KEY_INFO_TKIP_UNICAST);
+                               cpu_to_le16(KEY_UNICAST);
                else            /* TKIP group key: multicast */
                        key_material->key_param_set.key_info |=
-                               cpu_to_le16(KEY_INFO_TKIP_MCAST);
+                               cpu_to_le16(KEY_MCAST);
        }
 
        if (key_material->key_param_set.key_type_id) {
index 74add45b99b66a70f879530fdaa3e40a8481e041..648df690f5d1ef89ce677bc464c3094ec5a8ed1d 100644 (file)
@@ -574,8 +574,7 @@ static int mwifiex_ret_802_11_key_material(struct mwifiex_private *priv,
                &resp->params.key_material;
 
        if (le16_to_cpu(key->action) == HostCmd_ACT_GEN_SET) {
-               if ((le16_to_cpu(key->key_param_set.key_info) &
-                    KEY_INFO_TKIP_MCAST)) {
+               if ((le16_to_cpu(key->key_param_set.key_info) & KEY_MCAST)) {
                        dev_dbg(priv->adapter->dev, "info: key: GTK is set\n");
                        priv->wpa_is_gtk_set = true;
                        priv->scan_block = false;
index b163507b1fe0b17bf1393f21adb25d8dcf41e41c..2fcdbc224e08e2ba195e923d19a55520d4d9b2ee 100644 (file)
@@ -1729,8 +1729,7 @@ static int mwifiex_sec_ioctl_set_wpa_key(struct mwifiex_adapter *adapter,
                       sizeof(ibss_key->key_param_set.key_len));
                ibss_key->key_param_set.key_type_id
                        = cpu_to_le16(KEY_TYPE_ID_TKIP);
-               ibss_key->key_param_set.key_info
-                       = cpu_to_le16(KEY_INFO_TKIP_ENABLED);
+               ibss_key->key_param_set.key_info = cpu_to_le16(KEY_ENABLED);
 
                /* Send the key as GTK to firmware */
                encrypt_key->key_index = ~MWIFIEX_KEY_INDEX_UNICAST;