mwifiex: add client mac address while configuring keys on GO.
authorMaithili Hinge <maithili@marvell.com>
Tue, 30 Sep 2014 10:59:38 +0000 (16:29 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 30 Sep 2014 17:17:48 +0000 (13:17 -0400)
When mwifiex device becomes GO, unicast traffic between client1 and GO stops
when client2 connects to GO. Reason behind this was PTK getting
overwritten by key_material command for client2 as it did not have client
mac address. So, client1 can no more decode GO's ping packets though it
responds to its broadcast packets.

This patch adds case to check for BSS_ROLE instead of bss_type to set
client mac address while configuring keys when device becomes GO.

Signed-off-by: Maithili Hinge <maithili@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/sta_cmd.c

index 225f7498048b78315d74a7cfdd6b234350390531..1c2ca291d1f5351447130cc30cfcccc00b99dc17 100644 (file)
@@ -938,7 +938,7 @@ mwifiex_cmd_802_11_key_material_v1(struct mwifiex_private *priv,
                cmd->size = cpu_to_le16(sizeof(key_material->action) + S_DS_GEN
                                        + key_param_len);
 
-               if (priv->bss_type == MWIFIEX_BSS_TYPE_UAP) {
+               if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) {
                        tlv_mac = (void *)((u8 *)&key_material->key_param_set +
                                           key_param_len);
                        tlv_mac->header.type =